gpt4 book ai didi

java - 如何检查 Attribute(object) 在 Java 中是否为 null

转载 作者:行者123 更新时间:2023-11-29 04:07:43 25 4
gpt4 key购买 nike

我需要一份报告的特定数据,然后我从父对象获取所有信息

对象 1

它有很多属性,对象属性

Object11, Object12, Object13, attr1, attr2...

属性也有很多属性

Object111, Object131, Object132,..

现在我得到了 5 个级别的数据属性。

当我向我的报告发送信息时,它说,错误:原因:空

object1.getIdObject11().getIdObject111().getDescription;

它抛出错误,因为 Object111 为空

我试过用

object1.getIdObject11().getIdObject111().getDescription==null?'':object1.getIdObject11().getIdObject111().getDescription;

但它只验证描述是否为空,并抛出相同的错误然后我尝试验证对象

if(object1.getIdObject11().getIdObject111() == null) {
var = object1.getIdObject11().getIdObject111().getDescription;
} else {
var = "";
}

但是当 Object11 为 null 时,它会抛出同样的错误。

我认为对每个属性都这样做不是一个好方法(必须获得大约 30 个属性)

if(object1.getIdObject11()!=null) {
if(object1.getIdObject11().getIdObject111()!=null) {
if(object1.getIdObject11().getIdObject111().getIdObject1111()!=null) {
//...
}
}
}

我想验证是否有空对象并设置''(空白)如果是,没有这么大的代码(因为得到的参数设置在报告中,与字母混合)。

reportline1 = "区域:"+object1.getIdObject11().getIdObject111().getName;

最佳答案

你的代码中断了 Demeter's law .这就是为什么最好重构设计本身。作为解决方法,您可以使用 Optional

   var = Optional.ofNullable(object1)
.map(o -> o.getIdObject11())
.map(o -> o.getIdObject111())
.map(o -> o.getDescription())
.orElse("")

关于java - 如何检查 Attribute(object) 在 Java 中是否为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57298357/

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