我不知道我是不是唯一知道这一点的人,但是枚举的值并不是隐式最终的,可以修改。enumEnumTest{TOTO("TOTO1"),TATA("TATA2"),;privateStringstr;privateEnumTest(Stringstr){this.str=str;}@OverridepublicStringtoString(){returnstr;}}publicstaticvoidmain(String[]args){System.out.println(EnumTest.TATA);EnumTest.TATA.str="newVal";System.out.println
我有如下界面:packageexample;importjava.awt.Point;publicinterfaceThing{publicenumMovingState{MOVING_LEFT,MOVING_UP,MOVING_RIGHT,MOVING_DOWN}publicvoidsetNewPosition(MovingStatestate);publicPointgetPosition();}和一个实现类:packageexample;importjava.awt.Point;publicclassThingImplimplementsThing{publicenumMovin
我有一个枚举:publicenumPermissionsEnum{ABC("Abc"),XYZ("Xyz"),....}然后我有一个枚举列表。我想检查我的列表是否至少有一个枚举。我目前通过迭代方法检查它。我也知道有一种方法可以使用||检查list.contains(enum.ABC..)||list.contains(enum.XYZ)||...。有更好的方法吗?Thisquestion展示了如果目标列表是一个字符串列表如何做到这一点,如果该列表是另一个枚举列表,我想获得匹配状态。 最佳答案 Collections.disjoint
我和我的同事正在讨论枚举中的逻辑。我个人的偏好是在Java枚举中不有任何逻辑(尽管Java提供了这样做的能力)。这种情况下的讨论集中在枚举中有一个返回映射的便捷方法:publicenumPackageType{Letter("01","Letter"),....Tube("02","PackagingTube");privateStringpackageCode;privateStringpackageDescription;....publicstaticMaptoMap(){Mapmap=newLinkedHashMap();for(PackageTypepackageType:P
我没有真正幸运地通过使用Google得到这个比较的简明答案,而不是自己做耗时的评估,我想我会先问。我相当确定使用枚举的switch语句会比if-then-else语句执行得更快,尽管它是否有明显的差异是另一个问题。有人可以帮我解释一下吗?感谢大家的快速回复,我会在未来的项目中牢记这一点。 最佳答案 是的,确实如此,因为一般而言,switch语句比if/else链运行得更快。虽然生成的字节码并不总是性能比较的权威来源,但您可以检查它以获得更好的想法。例如这段代码:classA{enumN{ONE,TWO,THREE}voidtestS
考虑以下ssccepublicenumFlippableA(Z),B(Y),Y(B),Z(A);privatefinalFlippableopposite;privateFlippable(Flippableopposite){this.opposite=opposite;}publicFlippableflip(){returnopposite;}}这不会编译,因为Z和Y还没有被声明为A和的参数>B的构造函数。可能的解决方案1:硬编码方法publicenumFlippable{A{publicFlippableflip(){returnZ;}},B{publicFlippablefl
我正在用Java制作(我自己的)轮盘赌,玩家可以下注的一种类型是选择将要滚动的颜色。(偶数为黑色,奇数为红色)。有没有一种方法可以使用switch语句将字符串与枚举进行比较?privateenumcolors{red,black};privateStringcolorGuess;privatebooleancolorVerify=false;publicvoidgetColorGuess(){do{Scannerin=newScanner(System.in);colorGuess=in.nextLine();switch(colors){casered:colorVerify=tru
我似乎多次遇到这个问题,我想问问社区我是不是找错人了。基本上我的问题可以归结为:如果我有一个值很重要的枚举(在Java中),我应该使用枚举还是有更好的方法,如果我确实使用枚举那么什么是反转查找的最佳方法吗?这是一个例子。假设我想创建一个代表特定月份和年份的bean。我可能会创建如下内容:publicinterfaceMonthAndYear{MonthgetMonth();voidsetMonth(Monthmonth);intgetYear();voidsetYear(intyear);}在这里,我将我的月份存储为一个名为Month的单独类,因此它是类型安全的。如果我只输入int,那
假设您有以下枚举:publicenumColor{RED("R"),GREEN("G"),BLUE("B");privateStringshortName;privateColor(StringshortName){this.shortName=shortName;}publicstaticColorgetColorByName(StringshortName){for(Colorcolor:Color.values()){if(color.shortName.equals(shortName)){returncolor;}}thrownewIllegalArgumentExcepti
我有以下枚举我如何在jna中映射??这个枚举在结构中被进一步引用。typedefenum{eFtUsbDeviceNotShared,eFtUsbDeviceSharedActive,eFtUsbDeviceSharedNotActive,eFtUsbDeviceSharedNotPlugged,eFtUsbDeviceSharedProblem}eFtUsbDeviceStatus;阿卜杜勒哈利克 最佳答案 如果您使用的是JNA,您可能希望在Java中显式指定枚举的值。默认情况下,Java的基本枚举类型并没有真正为您提供该功能,您