Saya ingin memverifikasi apakah koleksi itu kosong dan null
. Adakah yang bisa tolong beri tahu saya praktik terbaik.
Saat ini, saya memeriksa seperti di bawah ini:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
java
collections
pengguna1635014
sumber
sumber
null == sampleMap
daripadasampleMap == null
. Kebanyakan orang menemukan yang terakhir lebih mudah dibaca - yang pertama adalah peninggalan dari bahasa lain.See Effective Java: Item 43 - Return empty arrays or collections, not nulls.
if (null = sampleMap)
di Jawa Anda akan mendapatkan kesalahan kompilasi. Itulah tepatnya komentar pertama saya. "Alasan" itu khusus bahasa, tetapi telah disebarluaskan ke bahasa lain meskipun ada hukuman keterbacaan karena orang belum mempertimbangkan mengapa mereka melakukan itu.Jawaban:
Jika Anda menggunakan pustaka Koleksi Apache Commons di proyek Anda, Anda dapat menggunakan
CollectionUtils.isEmpty
danMapUtils.isEmpty()
metode yang masing-masing memeriksa apakah koleksi atau peta kosong atau nol (yaitu mereka "null-safe").Kode di balik metode ini kurang lebih sama dengan yang ditulis oleh pengguna @icza dalam jawabannya.
Apa pun yang Anda lakukan, ingatlah bahwa semakin sedikit kode yang Anda tulis, semakin sedikit kode yang perlu Anda uji saat kompleksitas kode Anda berkurang.
sumber
isNullOrEmpty
.Itu cara terbaik untuk memeriksanya. Anda dapat menulis metode pembantu untuk melakukannya:
sumber
Map<?>
juga.||
Operator adalah operator hubung singkat, artinya jika operan kiritrue
, ia tidak akan mengevaluasi operan yang tepat. Jadi jikam == null
, makam.isEmpty()
tidak akan dipanggil (tidak diperlukan, hasilnyatrue
).Jika Anda menggunakan kerangka kerja Spring, maka Anda dapat menggunakan
CollectionUtils
untuk memeriksa terhadap kedua Koleksi (Daftar, Array) dan Peta dll.sumber
Secara pribadi, saya lebih suka menggunakan koleksi kosong daripada
null
dan memiliki algoritma bekerja sedemikian rupa sehingga untuk algoritma tidak masalah jika koleksi kosong atau tidak.sumber
Saat Anda menggunakan pegas maka Anda bisa menggunakannya
di mana obj adalah [peta, koleksi, array, aything ...]
jika tidak: kodenya adalah:
untuk String terbaik adalah:
sumber
Jika Anda perlu memeriksa nol, itulah caranya. Namun, jika Anda memiliki kendali atas ini, kembalikan saja koleksi yang kosong, kapan pun Anda bisa, dan periksa saja nanti yang kosong.
Utas ini kira-kira sama dengan C #, tetapi prinsip-prinsipnya berlaku juga untuk java. Seperti disebutkan di sana, null harus dikembalikan hanya jika
sumber
Anda dapat menggunakan
org.apache.commons.lang.Validate
' 's notEmpty metode':Validate.notEmpty(myCollection)
-> Validasi bahwa pengumpulan argumen yang ditentukan bukan nol atau ukuran nol (tanpa elemen); jika tidak melempar pengecualian.sumber
Kami akan memeriksa objek Koleksi kosong, nol atau tidak. semua metode yang diberikan di bawah ini, hadir dalam paket org.apache.commons.collections4.CollectionUtils.
Periksa Daftar atau atur jenis Koleksi objek.
Periksa jenis Peta Objek.
Jenis pengembalian semua metode adalah boolean.
sumber
Untuk semua koleksi termasuk peta gunakan:
isEmpty
metode yang ada di objek koleksi ini. Tetapi Anda harus melakukan pemeriksaan nol sebelum:sumber