3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個(gè)贊
問題毫無意義,因?yàn)槟?strong>無法覆蓋enum 的equal()
andhashCode()
。
final
這是因?yàn)樗鼈兪窃陬愔卸x的Enum
,該類隱式地是所有類型的基類enum
。

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
不,enum
這不是一個(gè)普通的類(正如安德烈亞斯指出的,它們是final
方法)。例如,您不需要使用來equals()
比較它們,因?yàn)槊總€(gè)值都有一個(gè)實(shí)例enum
。這允許您使用==
。
if(gameType == Game.CRICKET)
您可以覆蓋toString()
,因?yàn)槟J(rèn)情況下它打印的內(nèi)容與 相同name()
,這只是枚舉的名稱(例如FOOTBALL
)。

TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
我的第一個(gè)問題是為什么您首先需要枚舉來包含字符串。您的枚舉的目的看起來已經(jīng)是在特定的可能游戲列表中區(qū)分每種類型的游戲。所以枚舉本身在這里充當(dāng)常量值。例如你可以這樣做:
public void playGame( Game myGame ){
switch(myGame){
case FOOTBALL:
playFootball();
break;
case CRICKET:
playCricket();
break;
// and so on but you get the point
}
添加回答
舉報(bào)