gpt4 book ai didi

java - 避免检查中间对象的空值

转载 作者:行者123 更新时间:2023-12-02 07:33:53 26 4
gpt4 key购买 nike

我们都见过这样的代码

if (myObject!= null 
&& myObject.mySubObject() != null
&& myObject.mySubObject().getSpecificValue() != null
&& !myObject.mySubObject().getSpecificValue().isEmpty()
) {
......
}

我怎样才能以干净的方式写这个?

最佳答案

您可以使用 Optional 进行链接:

Optional.ofNullable(myObject)
.map(o -> o.mySubObject())
.map(so -> so.getSpecificValue())
.map(sv -> sv.isEmpty())
.orElse(false)

或者使用更短的方法引用(作用相同):

Optional.ofNullable(myObject)
.map(Foo::mySubObject)
.map(Bar::getSpecificValue)
.map(Baz::isEmpty)
.orElse(false)

其中 FooBarBaz 是各自类的名称。

关于java - 避免检查中间对象的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59970895/

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