gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:04:46 27 4
gpt4 key购买 nike

有许多关于类似错误的类似问题,但它们都是关于在尝试创建该类型的 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)
无论我尝试使用什么 EnumSet 方法,我都会得到完全相同的错误。有谁知道我可能做错了什么?我在 JDK 8 中使用 DrJava,因为这是我学到的东西,我只是为了好玩而这样做,所以我不需要使用最新的开发工具包,这可能是问题吗?文档说 EnumSet 是 Java 8 的一部分,所以我认为不是,但我不知道。

最佳答案

这似乎是 DrJava 中一个非常古老的错误: #744 enums can't appear in EnumSet 。从 2009 年就开始报道,至今仍未修复。根据讨论,显然X.class.isEnum()返回false,这似乎暗示在编译枚举声明时,DrJava没有正确加载与声明对应的类。
我建议您使用其他 IDE,例如 EclipseIntelliJ IDEA ,或者如果您喜欢 DrJava 的交互式 REPL,您可以使用 JShell ,它是 JDK 9 附带的。

关于java - EnumSet 方法不会将任何枚举类型识别为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67945409/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com