假设我有一个SOA.现在我进行服务调用,我得到一个对象,它将嵌套对象作为字段.让我们说:
class A {
B b;
}
class B {
C c;
}
class C {
D d;
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我需要访问来自D类的字段,当我将对象作为服务调用的响应时,我需要执行:
if(a == null || a.getB() == null || a.getB().getC() == null || a.getB().getC().getD() == null) {
throw someexception();
}
Run Code Online (Sandbox Code Playgroud)
是否有一种优雅的方式来处理相同的谓词?
Pet*_*rey 10
你可以使用Optional:
D d = Optional.ofNullable(a)
.map(A::getB)
.map(B::getC)
.map(C::getD)
.orElseThrow(MyNullException::new);
Run Code Online (Sandbox Code Playgroud)
orElseGet(D::new)如果要使用默认值,也可以执行此操作.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |