我有一个枚举:publicenumPersons{CHILD,PARENT,GRANDPARENT;}使用ordinal()方法检查枚举成员之间的“层次结构”有什么问题吗?我的意思是-使用它时是否有任何缺点,不包括冗长,将来有人可能会意外更改顺序。或者这样做更好:publicenumPersons{CHILD(0),PARENT(1),GRANDPARENT(2);privateIntegerhierarchy;privatePersons(finalIntegerhierarchy){this.hierarchy=hierarchy;}publicIntegergetHierarch
我有一个枚举:publicenumPersons{CHILD,PARENT,GRANDPARENT;}使用ordinal()方法检查枚举成员之间的“层次结构”有什么问题吗?我的意思是-使用它时是否有任何缺点,不包括冗长,将来有人可能会意外更改顺序。或者这样做更好:publicenumPersons{CHILD(0),PARENT(1),GRANDPARENT(2);privateIntegerhierarchy;privatePersons(finalIntegerhierarchy){this.hierarchy=hierarchy;}publicIntegergetHierarch
我只是通过说如何解决编译问题来回答这个问题:Howtousefieldsinjavaenumbyoverridingthemethod?但我不明白为什么首先会发生错误。下面是写成枚举的例子:publicenumMyEnum{FIRST{@OverridepublicStringdoIt(){return"1:"+someField;//error}},SECOND{@OverridepublicStringdoIt(){return"2:"+super.someField;//noerror}};privateStringsomeField;publicabstractStringdo
我只是通过说如何解决编译问题来回答这个问题:Howtousefieldsinjavaenumbyoverridingthemethod?但我不明白为什么首先会发生错误。下面是写成枚举的例子:publicenumMyEnum{FIRST{@OverridepublicStringdoIt(){return"1:"+someField;//error}},SECOND{@OverridepublicStringdoIt(){return"2:"+super.someField;//noerror}};privateStringsomeField;publicabstractStringdo
JavaEnum类的文档说明了以下关于getDeclaringClass的内容:ReturnstheClassobjectcorrespondingtothisenumconstant'senumtype.Twoenumconstantse1ande2areofthesameenumtypeifandonlyife1.getDeclaringClass()==e2.getDeclaringClass().(ThevaluereturnedbythismethodmaydifferfromtheonereturnedbytheObject.getClass()methodforenumc
JavaEnum类的文档说明了以下关于getDeclaringClass的内容:ReturnstheClassobjectcorrespondingtothisenumconstant'senumtype.Twoenumconstantse1ande2areofthesameenumtypeifandonlyife1.getDeclaringClass()==e2.getDeclaringClass().(ThevaluereturnedbythismethodmaydifferfromtheonereturnedbytheObject.getClass()methodforenumc
我正在使用状态机,当针对大量可能的状态进行测试时,代码变得非常冗长。enumMood{HAPPY,SAD,CALM,SLEEPY,OPTIMISTIC,PENSIVE,ENERGETIC;}有没有办法做到这一点:if(currentMood==(HAPPY|OPTIMISTIC|ENERGETIC){}而不是这个:if(currentMood==HAPPY||currentMood==OPTIMISTIC||currentMood==ENERGETIC){}或者在这种情况下坚持使用整数和标志会更好吗? 最佳答案 也许使用EnumSe
我正在使用状态机,当针对大量可能的状态进行测试时,代码变得非常冗长。enumMood{HAPPY,SAD,CALM,SLEEPY,OPTIMISTIC,PENSIVE,ENERGETIC;}有没有办法做到这一点:if(currentMood==(HAPPY|OPTIMISTIC|ENERGETIC){}而不是这个:if(currentMood==HAPPY||currentMood==OPTIMISTIC||currentMood==ENERGETIC){}或者在这种情况下坚持使用整数和标志会更好吗? 最佳答案 也许使用EnumSe
是否有一种内置方法可以使用Myenum.length,之类的方式获取Enum的项目数或者我是否必须自己实现一个函数intsize()硬编码元素的数量? 最佳答案 是的,您可以使用Enum.values()方法获取枚举值数组,然后使用length属性。publicclassMain{enumWORKDAYS{Monday,Tuesday,Wednesday,Thursday,Friday;}publicstaticvoidmain(String[]args){System.out.println(WORKDAYS.values().l
是否有一种内置方法可以使用Myenum.length,之类的方式获取Enum的项目数或者我是否必须自己实现一个函数intsize()硬编码元素的数量? 最佳答案 是的,您可以使用Enum.values()方法获取枚举值数组,然后使用length属性。publicclassMain{enumWORKDAYS{Monday,Tuesday,Wednesday,Thursday,Friday;}publicstaticvoidmain(String[]args){System.out.println(WORKDAYS.values().l