我已經在基於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使用的所有協作對象。這是關於好/更好的設計。它也使你的代碼更脆弱。 –