Apakah ada alasan / keadaan di mana saya harus menggunakan object == null di atas Objects.isNull () dalam pernyataan if ?
Ya, salah satu alasannya adalah agar kode tetap sederhana. Dalam pernyataan if object == null
jelas dan terkenal. Itu tidak dapat menyebabkan kesalahan apa pun jika misalnya ada kesalahan ketik.
Pemahaman saya adalah bahwa Objects.isNull () akan menghilangkan kemungkinan tidak sengaja memberikan nilai null ke objek dengan menghilangkan kedua =.
Jika ada if (object = null) {}
dengan yang dihilangkan =
itu tidak akan dikompilasi atau akan menghasilkan peringatan jika ada Boolean
objek! Sebenarnya tidak ada alasan untuk menggunakan Objects.isNull(object)
lebih object == null
dalam jika pernyataan . Berikut dua varian berdampingan:
if (object == null) {
}
if (Objects.isNull(object)) {
}
Haruskah Objects.isNull () dibatasi pada Predicates secara eksklusif?
Bisa dibilang ya, itu terbatas pada Predikat saja, meski tidak ada kendala teknis untuk digunakan di Objects.isNull()
mana - mana.
Dari public static boolean isNull(Object obj)
metode javadoc:
@apiNote Metode ini ada untuk digunakan sebagai java.util.function.Predicate, filter (Objects :: isNull)
Jadi jika Anda menggunakan metode ini sebagai bukan predikat, Anda sebenarnya menggunakan ekspresi yang lebih kompleks dan tidak praktis dibandingkan dengan yang sederhana object == null
.
Berikut ini cuplikan untuk membandingkan manfaat Objects.isNull(object)
List<String> list = Arrays.asList("a", "b", null, "c", null);
long countNullsWithPredicate = list.stream().filter(Objects::isNull).count();
long countNullsWithLambda = list.stream().filter(object -> object == null).count();
long countNullsWithAnonymous = list.stream().filter(new Predicate<Object>() {
@Override
public boolean test(Object obj) {
return obj == null;
}
}).count();
if(null == variable)
secara konsistenā¦