对于下面的枚举,在Java中将Int转换为枚举的正确方式是什么?

public enum MyEnum
{
    EnumValue1,
    EnumValue2
}


MyEnum enumValue = (MyEnum) x; //Doesn't work???

推荐答案

try MyEnum.values()[x],其中x必须是01,即该枚举的有效序号.

请注意,在Java中,枚举实际上是类(因此枚举值是对象),因此不能将int甚至Integer强制转换为枚举.

Java相关问答推荐

在URL类图中表示Java swing类

如何使用CSS为选定但未聚焦的表格行设置背景 colored颜色 ?

Java:根据4象限中添加的行数均匀分布行的公式

使用java访问具体子类特定方法的最佳方法是什么?

';com.itextpdf.ext.html.WebColors已弃用

安装Java Jar应用程序的Install4j遇到ClassNotFoundException的运行时错误

Kotlin内联互操作:强制装箱

Spring和可编辑";where";@Query

我如何知道MediaDiscoverer何时完成发现介质?

如何让JVM在SIGSEGV崩溃后快速退出?

如何从HttpResponse实例获取Entity对象的内容?

如何获得凌空cookies ,并设置它在下一个请求- android

泛型与泛型问题的完美解决方案?

为什么相同的数据条码在视觉上看起来不同?

使用同步方法中的新线程调用同步方法

Java递归泛型是否可以被视为继承和重写的语法糖

using case default on switch语句返回;预览特征切换中的模式匹配仅在源级别20及以上的情况下可用;

在JPanel上使用GridBagLayout并将JButton放在里面时出现问题

为什么当我输入变量而不是直接输入字符串时,我的方法不起作用?

具有 DayOfWeek 列表的 JPA 实体