在if语句中,是否应该出于任何原因/情况在Objects.isNull()上使用object == null?
是的,原因之一是使代码保持简单。 if语句Objects.isNull(object)中的内容是明确且众所周知的。 例如,如果有错字,就不会导致任何不良行为。
我的理解是,Objects.isNull()将通过省略第二个=来消除为对象意外分配空值的机会。
如果有Objects.isNull(object),而省略了=,则在Boolean对象的情况下,它将不会编译或生成警告! 实际上,没有理由在if语句中使用object == null而不是object == null。 这是两个并排的变体:
if (object == null) {
}
if (Objects.isNull(object)) {
}
应该将Objects.isNull()仅限于谓词吗?
可以说是的,它只限于谓词,尽管在任何地方使用Objects.isNull(object)都没有技术障碍。
从Objects.isNull(object)方法的javadoc中:
@apiNote此方法已存在,可以用作java.util.function.Predicate,filter(Objects :: isNull)
因此,如果您将该方法用作非谓词,则与简单的Objects.isNull(object)相比,您实际上使用的是更复杂且繁琐的表达式。
这是一个片段,比较Objects.isNull(object)的好处
List list = Arrays.asList("a", "b", null, "c", null);
// As ready-made predicate
long countNullsWithPredicate = list.stream().filter(Objects::isNull).count();
// Lambda
long countNullsWithLambda = list.stream().filter(object -> object == null).count();
// Reimplement the Objects::isNull predicate
long countNullsWithAnonymous = list.stream().filter(new Predicate() {
@Override
public boolean test(Object obj) {
return obj == null;
}
}).count();
相关知识
java isnull()
专业java:void($={0})java:void($={0})java:void(LOGO设计免费生成器
电子宠物游戏java
Java基于JAVA语言的宠物寄养管理(开题+源码)
Java基于java鸟类管理系统与实现(开题+源码)
编写Java程序模拟主人养宠物 java写一个宠物系统
【Java项目】java实战宠物领养系统项目
宠物游戏系统 java
java测试类pet
用java写的小宠物游戏
网址: java isnull() https://m.mcbbbk.com/newsview276365.html
上一篇: 哈士奇+柯基=哈士基,一只会拆家 |
下一篇: Java中short,byte使 |