【发布时间】:2013-07-18 11:33:05
【问题描述】:
我有一个这样定义的枚举,我希望能够获取各个状态的字符串。这种方法应该怎么写?
我可以获取状态的 int 值,但也希望可以选择从 int 中获取字符串值。
public enum Status {
PAUSE(0),
START(1),
STOP(2);
private final int value;
private Status(int value) {
this.value = value
}
public int getValue() {
return value;
}
}
【问题讨论】:
-
状态 s = Status.PAUSE; System.out.println(s.name());
-
这个答案将帮助你理解stackoverflow.com/questions/17606866/…
-
不用定义0,1,2,你可以使用
Status.ordinal(); -
@ArnaudDenoyelle:您应该避免使用 ordinal(),请参阅 Joshua Bloch “Effective Java”
-
@GarfieldKlon 我同意。我不(也永远不会)建议依赖
ordinal(),因为在枚举中添加一个值会改变每个枚举的序数。我想指出,OP 复制了ordinal()的行为。