【发布时间】:2020-11-12 21:32:00
【问题描述】:
我已经研究了几个 Java 中与 null 检查相关的问题以及围绕它的最佳实践。
经过长时间的搜索,我可以看到Objects.nonNull () 可以达到目的,尽管它看起来像橙色而不是苹果。
现在我使用Objects.nonNull() 和短路逻辑与进行了以下检查。
if (Objects.nonNull (obj1) &&
Objects.nonNull (obj1.getObj2()) &&
Objects.nonNull (obj1.getObj2().getObj3 ())
{
obj1.getObj2().getObj3().doSomething();
}
当我清楚地知道我的意图时,我发现它更多余且可读性更低。
是否有任何其他方法可以以函数方式处理它,以断言更深层对象的非空状态而不会遇到空指针异常。
【问题讨论】:
-
你为什么用
Objects.nonNull而不是!=null? -
this 回答你的问题了吗?
-
为什么不使用
Optional?它稍微有点冗长,但仍然没有那么糟糕Optional.ofNullable(obj1).map(o -> o.getObj2()).map(o -> getObj3()).ifPresent(o -> o.doSomething()) -
@khelwood stackoverflow.com/questions/17302256/…
标签: java functional-programming null