java-如何避免嵌套null检查

我想从存在于类内部的API中检索字段.
是的,我知道这违反了得墨meter耳法则,但我别无选择.

getClassA().getClassB().getClassC().getClassD().getAccountId();

因此,添加空检查作为其不良的代码气味,所以我附带以下代码:

try{
getClassA().getClassB().getClassC().getClassD().getAccountId();
}catch(NullPointerException ex){
 S.O.P("Null Found");
}

要么

ClassA a = getClassA();
if(a!=null){
ClassB b = a.getClassB();
So on.....
}

我的问题是上述哪种方法最好,或者明确检索每个类并检查null并进入下一个级别
这违反了得墨meter耳定律

解决方法:

空对象设计模式是通过Optional类在Java 8中吸收的方式,这意味着您有一个包装器,您可以在其中拥有数据或拥有空数据.

它像

             MyObject
      RealObject    NullObject

在传递NullObject而不是传递null的地方,它提供与MyObject相同的接口(可以是具体/抽象/接口类)

上一篇:欠了好久的CRM帖子,双11来读。


下一篇:仅当在Java8中使用lambda时不为null时才过滤值