我想使用java Optional运算符来避免像以下那样的空检:
if(outher != null && outher.getNested() != null &&
outher.getNested().getInner() != null && outher.getNested().getAnotherInner() != null)
我查了一些互联网+ Java备忘单的教程,但没有找到如何解决:outher.getNested.getInner() != null && outher.getNested.getAnotherInner != null
部分。
那么如何正确地做到这一点:
Optional.of(outher)
.map(Outher::getNested)
.map(Nested::getInner)
.map(Nested::getAnotherInner)
.isPresent();
会很棒
答案 0 :(得分:3)
问题是<div id="items_#:idItem#"
data-role="sortable"
data-cursor="move"
data-axis="x"
data-hint="???">
</div>
返回Inner的实例,但它应该返回Outer。
我的建议是:
.map(Nested::getInner)
不确定flatMap,因为你应该在一个实体上映射
答案 1 :(得分:1)
嗯,如果你真的想要,有一种方法可以使用flatmap
:
boolean result = Optional.ofNullable(outer)
.map(Outer::getNested)
.filter(x-> x.getInner() != null)
.map(Nested::getAnotherInner)
.isPresent();