Bir if ifadesinde Object == null over Objects.isNull () kullanmam gereken herhangi bir neden / durum var mı?
Evet, bir neden kodu basit tutmaktır. İf ifadesi object == null
açık ve iyi biliniyor. Örneğin bir yazım hatası varsa, herhangi bir yanlış davranışa yol açamaz.
Anladığım kadarıyla, Objects.isNull (), ikinci = 'yi atlayarak yanlışlıkla nesneye boş bir değer atama olasılığını ortadan kaldıracaktır.
Varsa bir if (object = null) {}
ile ihmal =
derlenemeyecektir.Ancak etmez veya durumunda uyarısı oluşturur Boolean
nesne! Aslında if ifadesinin içinde Objects.isNull(object)
over kullanmak için bir neden yok . İşte yan yana iki varyant:object == null
if (object == null) {
}
if (Objects.isNull(object)) {
}
Objects.isNull () yalnızca Predicates ile sınırlı mı olmalı?
Evet denilebilir, Objects.isNull()
her yerde kullanmak için teknik bir engel olmamasına rağmen, yalnızca Predicates ile sınırlıdır .
Gönderen public static boolean isNull(Object obj)
yöntemin javadoc:
@apiNote Bu yöntem java.util.function.Predicate, filtre (Objects :: isNull) olarak kullanılmak üzere mevcuttur.
Siz yöntemi kullanmak Yani eğer değil bir yüklemi aslında basit oranla daha karmaşık ve hantal ifadesini kullanıyor object == null
.
İşte avantajlarını karşılaştırmak için bir pasaj 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)
tutarlı bir şekilde kullanabilirsiniz …