在 Java 中将 Int 转换为枚举
在Java中,给定以下枚举,将Int转换为枚举的正确方法是什么?
public enum MyEnum
{
EnumValue1,
EnumValue2
}
MyEnum enumValue = (MyEnum) x; //Doesn't work???
在Java中,给定以下枚举,将Int转换为枚举的正确方法是什么?
public enum MyEnum
{
EnumValue1,
EnumValue2
}
MyEnum enumValue = (MyEnum) x; //Doesn't work???
尝试 where must 是 或 ,即该枚举的有效序数。MyEnum.values()[x]
x
0
1
请注意,在Java中,枚举实际上是类(因此枚举值是对象),因此您无法强制转换为枚举甚至枚举。int
Integer
MyEnum.values()[x]
是一项成本高昂的操作。如果性能是一个问题,您可能需要执行如下操作:
public enum MyEnum {
EnumValue1,
EnumValue2;
public static MyEnum fromInteger(int x) {
switch(x) {
case 0:
return EnumValue1;
case 1:
return EnumValue2;
}
return null;
}
}