与以下对话相关 -
- Java 对象空检查方法
- 避免
!= null
语句
第二个链接提出了一些避免!= null
陈述的方法。
- 使用
assert
是其中之一。 - 使用 NullObjectPattern - 不是一种选择,因为每个处理的人都不负责生产代码。
第一个链接只是暗示!= null
想法。
Object 类有requiresNonNull
抛出 NullPointerException 的方法,如果使用对象,无论如何都会抛出这些异常。assert
也提出了同样的方式。如果我能处理每个异常,那么代码就会变得丑陋,因为有太多的尝试和捕获。
在面向对象的意义上,使用!= null
并不是很漂亮。
我认为Object.isNull
和Object.isNotNull
是使代码看起来简洁整洁的方法,同时也很好地处理了这种情况(我的意思是没有冗长的try...catch
语句)。我可以轻松地在任何条件语句中使用它们。这比原始!= null
要好得多。
但是,为什么没有这样的方法呢?传递空是一个坏主意吗?如果是,那么如果 null 是有效的响应而不是!= null
,我们应该怎么做?
编辑:
将问题从:为什么 Java 中没有boolean Object.isNull(Object object)
静态实用程序方法?到Java 中是否有boolean Object.isNull(Object object)
或类似的静态实用程序方法?
https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html:
static boolean isNull(Object obj)
如果提供的引用为 null,则返回 true,否则返回 false。
static boolean nonNull(Object obj)
如果提供的引用为非 null,则返回 true,否则返回 false。
不过,从 1.8 开始...