gpt4 book ai didi

java - 检查获取链中的任何对象是否为空,而无需检查每个深度

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:19:21 24 4
gpt4 key购买 nike

<分区>

我正在使用遗留应用程序,我经常需要访问像这样深度嵌套的属性:

a.getB().getC().getD().getE().getF()

问题是在任何深度,该值都可能为空。当然我可以像这样检查每个深度:

public Optional<F> retrieveValue(A a) {
if(a != null && a.getB() != null && a.getB().getC() != null &&
a.getB().getC().getD() != null &&
a.getB().getC().getD().getE() != null &&
a.getB().getC().getD().getE().getF() != null) {
return Optional.of(a.getB().getC().getD().getE().getF());
} else {
return Optional.empty();
}
}

F existingOrCreated = retrieveValue(a).orElse(new F());

但我必须在许多地方对许多不同的对象执行此操作,因此代码因这些检查而变得臃肿。大多数对象是非空的,但在极少数情况下对象是空的。有没有办法以更简洁的方式做到这一点?我使用的是 Java 8,但无法更新提供的遗留代码。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com