2013-01-21 17 views
0

我寫的代碼,並使用審計的CodePro工具,而我在寫一個equals方法,我遇到這樣的審計缺少身份檢查,我不知道如何糾正它輸入缺少的身份檢查,當審計代碼

我的方法的代碼:

@Override 
public boolean equals(Object o) { 
    boolean result = false; 
    if(o instanceof Coordinate){ 
     if(((Coordinate) o).x == x && 
       ((Coordinate) o).y == y){ 
      result = true; 
     } 
    } 
    return result; 
} 

審計的描述是這樣的:

說明:缺少身份檢查

說明: equals方法應該比較接收者的身份和參數,如果它們相同,則返回true。

建議:1.添加對象標識測試。

我不知道什麼是測試對象身份,我應該使用單元測試還是什麼?謝謝你幫助我。

+1

我認爲它的意思是,你應該先檢查'如果(這種== O)返回TRUE;作爲短路平等。 – Jochen

+0

您可能有興趣閱讀此文http://stackoverflow.com/q/27581/1317692 – Fallup

+0

是的,您是對的,我正在閱讀您提供的資料,非常感謝 – user1834274

回答

3

它只是意味着你應該檢查,如果兩個對象是相同的

this == o;