我已經與C#稍微休息一下後,返回到的Java的時候,我已經厭倦了寫東西一樣a.equals(b)
,所以我在想,等於有辦法使用==
運算符而不會破壞我的程序。==還是比較最終靜態字段
這裏是我的情況:
public static class A {
public final static A STATIC_FIELD = new A(prop1, prop2);
public A method(int param){
return (param > 0.5) ? STATIC_FIELD : new A(prop1, prop2);
}
}
現在,我可以在下面的代碼片段與==
取代equals
,因爲我指的是同一個對象還是錯?
....
private bool method(){
A aInstance = getAInstance();
int param = Math.Random();
return aInstance.method(param).equals(A.STATIC_FIELD);
}
....
什麼,如果STATIC_FIELD
在從enum
採取了價值?
但是在這裏,method()不返回A的新實例(當爲true時),它返回靜態字段。 – 2014-12-06 18:47:47
只有當參數值大於.5時纔會返回STATIC_FIELD,否則它將返回一個新對象 – varun 2014-12-06 18:49:56
如果你認爲它總是真的,那麼你可以使用==。但它總是更好地使用等於對象 – varun 2014-12-06 18:52:26