草庐IT

Java - EnumSet.add(enum),抛出 NullPointerException

这是在Java中,跨平台并在运行UbuntuOneric的计算机上调试,并安装了OpenJDK作为我的运行时。我有一个EnumSet用于检查我正在开发的游戏的类内部。我从logcat中读取了这个读数,来self的构造函数中的大量调试:Tile:passabilitybeingset...?Exceptioninthread"Thread-1"javax.media.opengl.GLException:java.lang.NullPointerException...Causedby:java.lang.NullPointerExceptionatnet.darkglass.map.T

java - Java 将枚举编译成什么?

我和一位同事讨论了Java如何表示枚举。我的印象是它们是严格的整数,就像C/C++。或者,如果您添加行为(类型安全枚举),它会被包装在一个类中。他相信,如果它足够小,Java会把它压缩到一个字节。但是,我在Oracle站点上发现了这个:Javaprogramminglanguageenumsarefarmorepowerfulthantheircounterpartsinotherlanguages,whicharelittlemorethanglorifiedintegers.Thenewenumdeclarationdefinesafull-fledgedclass(dubbeda

java - 映射值应该声明为常量还是枚举?

我看到这散布在整个代码库中:@RequestMapping(value="myValue")我更愿意使用这样的东西:@RequestMapping(value=Constants.myValue)似乎使用@RequestMapping中的实际字符串值而不是常量来打破DRY。但这是好的代码实践吗?我应该改用枚举吗?我可能需要在代码库的其他地方使用Constants.myValue。 最佳答案 ShouldIuseanenuminstead?你不能。注释变量必须是编译时常量。枚举和字符串字面量都是,但您不能创建一个字符串枚举,而@Req

Java 枚举...它们是在哪里创建的?

由于C#中的枚举在堆栈上,我想知道Java中的枚举在哪里创建。在堆栈上?在堆上?在某个神秘的地方?C#中的枚举比Java中的枚举更原始,这也许可以解释为什么它们是在堆栈上创建的...他们在哪里?我找不到它们!谢谢 最佳答案 Java中的枚举也是对象:例如,枚举可以有实例变量/方法/构造函数和实现接口(interface)。所有这些让我觉得它们就像其他对象一样被jvm处理。 关于Java枚举...它们是在哪里创建的?,我们在StackOverflow上找到一个类似的问题:

java - Java 枚举如何以 1 开头?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭6年前。Improvethisquestion查看java.time.DayOfWeek的源代码会发现:publicenumDayOfWeekimplementsTemporalAccessor,TemporalAdjuster{/***Thesingletoninstancefortheday-of-weekofMonday.*Thishasthenumericvalueof{@code1}.*/MONDAY,/***Thesing

java - 是否可以使用包含两个或更多单词的枚举的枚举类?

我必须从几种类型的书籍中进行选择,我正在考虑为此使用枚举,但有几种类型由两个或多个词组成,例如“医疗、健康与健身”、“艺术与摄影”、“科幻小说》等publicenumGenero{Action,Comedy,Drama,Computers,Novel,ScienceFiction}但是我遇到了“科幻小说”的语法错误。我试着用双引号和简单的引号把它放在一起,但都没有用。此枚举将用作Book类的属性。 最佳答案 不,这不可能。枚举名称必须是有效的Java标识符——也就是说,没有空格。通常的约定是以所有大写字符声明枚举名称并使用下划线分隔

java - 组合枚举并使用 getter 返回指定的枚举

假设我有两组不同的枚举:水果和蔬菜。publicstaticenumFruits{APPLE("Apple"),PEAR("Pear");//constructor//getName()...}publicstaticenumVegetables{CARROT("Carrot"),LETTUCE("Lettuce");//constructor//getName()...}我在JComboBox中显示所有这些。在有人选择了一些东西之后,我想使用一个getter方法来取回Enum。对于单个枚举,我会做类似的事情:publicstaticFruitsgetEnum(Stringname){

java - 在 JSP EL 枚举值总是空的

这个问题在这里已经有了答案:HowtoreferenceconstantsinEL?(12个答案)关闭6年前。当试图让EL条件起作用时,我发现枚举值被完全忽略了。在我看来,这似乎与规范相反。empty令我惊讶的是,这些都评估为空。为什么不识别Enum类?这是在当前稳定的Tomcat实例中发生的。这可能是类路径问题吗?Enum在Controller代码中成功使用,但在JSP中没有其他地方使用。它在部署的lib目录中的jar中提供。更新:我的目的是将提供的整数与枚举的属性进行比较,如下所示:FOOBARFAIL不幸的是,无法更改正在检查的值并将保持为整数。枚举如下(简化):publicen

java - 我可以使用 EL 从 JSP 访问枚举类的值吗?

我有一个枚举类USState。我想遍历JSP中的状态。是否可以在不首先将这样的列表设置为属性的情况下访问USState的列表?似乎像枚举这样静态的东西应该始终可用,但我不知道该怎么做。这是我要找的:(工作除外)${state} 最佳答案 您也可以考虑将其包装在一个Javabean中,如下所示:packagecom.stackoverflow.q2240722;publicclassStateBean{publicState[]getValues(){returnState.values();}}这样可以通过访问:SOquestion

具有不同值的 Java 相同枚举

我使用枚举来定义可以添加到产品中的几个变体(自定义Logo、颜色等)。每个变体都有多个选项(ID、两种语言的描述、在流程中进行更改的位置、价格等)。它具有进一步定义变化(例如应使用哪种颜色)或覆盖某些选项的方法。一种产品可以在ArrayList中存储零个、一个或多个变体。此外,某个变体可以多次应用于一个产品。只要我只使用一次变体,一切都很好。但如果我多次使用它,似乎所有选项都相同。示例代码:测试类.java:importjava.util.ArrayList;publicclassTestClass{publicstaticvoidmain(String[]args){ArrayLis