小编Eve*_*ann的帖子

EnumSet 方法不会将任何枚举类型识别为枚举

有许多关于类似错误的类似问题,但它们都是关于在尝试创建该类型的 EnumSet 之前枚举类型尚未初始化的特定情况。我的问题非常非常基本。我无法让任何 EnumSet 方法将任何枚举识别为枚举,无论我尝试做的事情多么简单。例如:

> enum X{GREEN,RED,YELLOW}
> X.values()
{ GREEN, RED, YELLOW }
> EnumSet.allOf(X.class);
java.lang.ClassCastException: class X not an enum
   at java.base/java.util.EnumSet.noneOf(EnumSet.java:113)
   at java.base/java.util.EnumSet.allOf(EnumSet.java:132)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
Run Code Online (Sandbox Code Playgroud)

无论我尝试使用什么 EnumSet 方法,我都会得到完全相同的错误。有谁知道我可能做错了什么?我在 JDK 8 中使用 DrJava,因为这是我学到的东西,我只是为了好玩而这样做,所以我不需要使用最新的开发工具包,这可能是问题吗?文档说 EnumSet 是 Java 8 的一部分,所以我认为不是,但我不知道。

java enums enumset

4
推荐指数
1
解决办法
44
查看次数

标签 统计

enums ×1

enumset ×1

java ×1