【发布时间】:2013-06-29 06:21:30
【问题描述】:
我正在尝试使用枚举创建层次结构类型系统。我以前从未使用过枚举。
这个方法总是返回 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等
【问题讨论】:
-
你的方法工作得很好。
-
您的方法有效。请在您调用它的地方发布代码...
-
@Baadshah 我不这么认为。我为 Rank.SQUIRE.getNextRank() 获得了 Rank.PEASANT
-
@DrAgonmoray 请检查屏幕截图所附的帖子。
标签: java enums switch-statement