引用嵌套对象的最佳做法是什么?
假设我有以下内容:
class Outer {
private InnerA innerA;
//getters and setters
}
class InnerA {
private InnerB innerB;
//getters and setters
}
class InnerB {
private String someString;
//getters and setters
}
在我的 Controller 或服务类中,我需要检查 InnerB 类的 someString 字符串变量以确保它不为 null 或不为空,所以我这样做:
if (getOuter().getInnerA().getInnerB().getSomeString() != null && !getOuter().getInnerA().getInnerB().getSomeString().equalsIgnoreCase("") {
//do something
}
对我来说,这看起来很乱,如果嵌套对象本身为 null,则可能会出现问题。
我是否在父对象中为检查 null 的子对象创建 getter 和 setter?只是想知道最佳实践是什么和/或你们中的一些人在代码中做了什么?
最佳答案
如果这些对象中的任何一个可以为 null,那么当然,您必须在对该对象调用 getter 之前检查是否为 null。
但是这种链接是一种缺乏封装的难闻气味(贫血对象只有数据,没有行为)。你违反了 law of Demeter : 不要和陌生人说话。
关于java - 嵌套对象最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248691/