我已经在基于Spring框架的一些网络项目的工作,我总能找到病因复杂程度相同PMD/Checkstyle的问题:(下面一个简单的例子:繁琐结帐(解决方案与Spring)
我们定义父类。
public Class ObjectA(){
private ObjectB objectB;
public ObjectB getObjectB(){
return objectB;
}
}
其次,我们定义的子类。
public Class ObjectB(){
private String str;
public String getStr(){
return str;
}
}
现在,我从一个对象A获得字符串的“海峡”的值,只有当不为空,但我必须CH eck所有对象都不是空值。
首个解决方案(4个条件)
if(objectA != null
&& objectA.getObjectB() != null
&& objectA.getObjectB().getStr() != null
&& !objectA.getObjectB().getStr().isEmpty()){
// Do something...
}
与StringUtils的第二类解决方案从春季(3个条件)
if(objectA != null
&& objectA.getObjectB() != null
&& StringUtils.hasText(objectA.getObjectB().getStr())){
// Do something...
}
我想知道,如果存在于Spring中的一些方法,对象A以检查对象B不为null,并且该方法必须检查ObjectA是否也不为null。
谢谢!
它可能是一个解决方案,但你必须在父类中添加这些方法。我更喜欢一个通用的方法来从A中获取B,例如一些带有getObjFromObj(Object target,String fieldName)的类Utils类,并且我想知道Spring中是否存在此实用工具。 – juanhl
这就是OO关于封装(等等)的内容。 [Demeter法](http://en.wikipedia.org/wiki/Law_of_Demeter)就是这一点。使用ObjectA的对象应该只知道ObjectA,它不应该知道ObjectA使用的所有协作对象。这是关于好/更好的设计。它也使你的代码更脆弱。 –