我有这样的枚举
public enum Sizes {
Normal(232), Large(455);
private final int _value;
Sizes(int value) {
_value = value;
}
public int Value() {
return _value;
}
}
Run Code Online (Sandbox Code Playgroud)
现在我可以调用Sizes.Normal.Value()来获取整数值,但是如何将整数值转换回枚举?
我现在做的是:
public Sizes ToSize(int value) {
for (Sizes size : Sizes.values()) {
if (size.Value() == value)
return size;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
但这是唯一的方法吗?这就是Java的工作原理?
是的,它是如何完成的,通常是通过向枚举添加静态方法.想一想; 你可以在枚举上有10个字段.您是否希望Java为所有这些设置查找?
这里的要点是Java枚举没有'值'.他们有身份和序数,加上你为自己添加的任何东西.这与C#不同,C#在C++之后具有任意整数值.
| 归档时间: |
|
| 查看次数: |
14194 次 |
| 最近记录: |