我想从存在于类内部的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相同的接口(可以是具体/抽象/接口类)