大概问过,但是找不到。
我以以下形式写了很多声明:
if (bar.getFoo() != null) {
this.foo = bar.getFoo();
}
我想到了三元运算符,但是我认为这并没有使它更好:
this.foo = bar.getFoo() != null ? bar.getFoo() : this.foo;
我的主要问题是在两种情况下我都必须编写两次bar.getFoo()。当然,我可以编写一个解决此问题的辅助方法,但是我想知道是否还有更优雅的解决方案。
不同于:Avoiding != null statements,因为该问题不涉及为值赋值为null的值。
最佳答案
如可选javadoc中所述:A container object which may or may not contain a non-null value.
话虽如此,这是处理空检查的最“ java-8”方式。这是Java Optional引入的初衷之一。让getFoo返回Optional,您可以只使用Optional上的ifPresent函数,您就可以开始了。