我想創建一個使用枚舉的層次結構類型系統。我以前從未使用Enum。Java - 在枚舉中使用「this」?
此方法總是返回農民。我認爲這是因爲我錯誤地使用了「this」,或者我完全誤解了enums。
public enum Rank {
PEASANT,
TRADER,
SQUIRE,
MERCHANT,
KNIGHT,
NOBLE,
KING;
public Rank getNextRank() {
switch (this) {
case PEASANT:
return SQUIRE;
case SQUIRE:
return KNIGHT;
case KNIGHT:
return NOBLE;
case NOBLE:
return KING;
case KING:
return PEASANT;
}
return PEASANT;
}
}
(我意識到KING情況下是沒有必要的,但我喜歡它的可讀性)
我想Rank.PEASANT.getNextRank()
返回Rank.SQUIRE
和Rank.NOBLE.getNextRank()
返回Rank.KING
等
你的方法完美的工作。 –
您的方法正在工作。請發佈代碼,你正在調用它... – Thihara
@Baadshah我不這麼認爲。我得到Rank.PEASANT for Rank.SQUIRE.getNextRank() – fruitcup