Optional使用
import java.util.HashMap;
import java.util.Map;
// 最外层对象
public class Outer {
Nested nested;
Nested getNested() {
return nested;
}
}
// 第二层对象
class Nested {
Inner inner;
Inner getInner() {
return inner;
}
}
// 最底层对象
class Inner {
String foo;
String getFoo() {
return foo;
}
}
import java.util.Optional;
import org.junit.Test;
public class test {
@Test
public void test01(){
Outer outer = new Outer();
if (outer != null && outer.nested != null && outer.nested.inner != null) {
System.out.println(outer.nested.inner.foo);
}
}
@Test
public void test02(){
Optional.of(new Outer())
// .map(Outer::getNested)
//x可以表示传入的Outer对象
.map(x -> {
return x.getNested();
})
.map(Nested::getInner)
.map(Inner::getFoo)
// .ifPresent(System.out::println); // 如果不为空,最终输出 foo 的值
.ifPresent(foo -> {
System.out.println(foo);
});
}
//如果使用context对象中的属性是map对象(一般不建议),传入ele为map对象
// Optional.ofNullable(context.getMap())
// .map(ele -> ele.get("indexKey"))
// .ifPresent(index -> {
// otherObject.setIndex(index);
// });
}
语法参考:
https://www.cnblogs.com/fx-blog/p/11747058.html
最佳实践参考:
https://zhuanlan.zhihu.com/p/128481434
https://xie.infoq.cn/article/e3d1f0f4f095397c44812a5be
posted on 2022-09-24 19:27 passionConstant 阅读(27) 评论(0) 编辑 收藏 举报