我在我的應用程序枚舉類和我使用這個枚舉比較喜歡這個BigIntegers的值:的Java枚舉爲BigInteger的值
if (user.getObjId.equals(RoleEnum.ADMIN.getValue())) {
//something happens
}
的問題是,我可以修改此枚舉類使用它,而不調用getValue()方法,如下面的代碼示例所示?
if (user.getObjId.equals(RoleEnum.ADMIN)) {
//something happens
}
這裏是我的枚舉類:
public enum RoleEnum {
ADMIN(1), USER(2);
private final BigInteger value;
private RoleEnum(int value) {
this.value = BigInteger.valueOf(value);
}
public BigInteger getValue() {
return value;
}
}
您可以覆蓋平等,但你不能這樣做沒有打破平等的合同這是一個壞主意屬性,例如對稱:如果'a.equals(b)'然後'b.equals(a)'。 – weston
感謝您指出這一點! –