我已经与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