【发布时间】:2018-03-05 23:28:24
【问题描述】:
在对象克隆不同类型的对象时使用 Optional 进行空检查。
class A{ C cObj; List<B> bList;}
class B{ C cObj; List<C> cList;}
class C { String label; String value;}
class D{ String name; String age; String addressCode;}
映射 A -> D
d.setAddessCode(A.getBlist().get(0).getcList().get(0).getValue());
如何使用 java 8 optional 来检查 null
A.getBlist().get(0).getcList().get(0).getValue()
我试过了
d.setAddessCode(Optional.ofNullable(A).map(A::getBList).map(Stream::of).orElseGet(Stream::empty).findFirst().map(B::getCList).map(Stream::of).orElseGet(Stream::empty).findFirst().map(C::getValue).orElse(null)));
如何在 List 和 value 中同时检查 null。
【问题讨论】:
-
如何从 C 到 D?
-
来自 B 的
orElseGet(Stream::empty)应该已经为你做这件事了,不是吗? -
为什么只做空检查?如果
bList非空但为空怎么办?
标签: java object java-8 java-stream optional