0
我想比較Enum的值。如何比較枚舉值?
public enum En{
Vanila("Good"),
Marlena("Luck"),
Garnela("Good");
private String value;
private En(String s){
this.value = s;
}
}
AS Vanila
和Garnela
有比較它們應該返回真值相同。有兩種方法,一種是==
運營商,另一種是equals()
方法。我嘗試了自己的邏輯並將此方法添加到枚舉中。
public boolean compareValue(En e){
return (this.value).equals(e.value);
}
現在它工作正常。
En a = En.Vanila;
En b = En.Garnela;
En c = En.Marlena;
if(a.compareValue(b)){
System.out.println("a == b");
}
if(a.compareValue(c)){
System.out.println("a == c");
}
if(b.compareValue(c)){
System.out.println("b == c");
}
我知道我們不能忽略equals枚舉的方法(不知道爲什麼,我知道這是最後的,但不是邏輯上的理由。你也可以解釋,爲什麼我們不能忽略equals()在枚舉?)。
任何如何有任何其他方式來有效地做到這一點或者它是好的?
枚舉點是他們每個人都有自己的身份。爲什麼搞砸了? –
@NathanHughes,因爲Java允許它。 – UnKnown
只需使用'=='進行身份比較,它的效果最好。 – markspace