我正在尝试使用枚举创建层次结构类型系统。我以前从未使用过枚举。
此方法始终返回 Peasant。我认为这是因为我错误地使用了“this”,或者我完全误解了枚举。
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
等。