是否可以创建枚举值的ArrayList(并对其进行操作)?例如:enumMyEnum{ONE,TWO}MyEnummy=MyEnum.ONE;Listal=newArrayList();al.add(my);al.remove(al.size()-1); 最佳答案 你可以简单地写newArrayList(Arrays.asList(MyEnum.values())); 关于java-java中的枚举值列表,我们在StackOverflow上找到一个类似的问题:
我们有一个RESTAPI,客户端可以在其中提供代表在Java枚举中定义在服务器上的值的参数。所以我们可以提供一个描述性错误,我们将这个lookup方法添加到每个Enum。好像我们只是在复制代码(不好)。有更好的做法吗?publicenumMyEnum{A,B,C,D;publicstaticMyEnumlookup(Stringid){try{returnMyEnum.valueOf(id);}catch(IllegalArgumentExceptione){thrownewRuntimeException("Invalidvalueformyenumblahblah:"+id);}}
我们有一个RESTAPI,客户端可以在其中提供代表在Java枚举中定义在服务器上的值的参数。所以我们可以提供一个描述性错误,我们将这个lookup方法添加到每个Enum。好像我们只是在复制代码(不好)。有更好的做法吗?publicenumMyEnum{A,B,C,D;publicstaticMyEnumlookup(Stringid){try{returnMyEnum.valueOf(id);}catch(IllegalArgumentExceptione){thrownewRuntimeException("Invalidvalueformyenumblahblah:"+id);}}
我有一个enum开关或多或少像这样:publicstaticenumMyEnum{A,B}publicintfoo(MyEnumvalue){switch(value){case(A):returncalculateSomething();case(B):returncalculateSomethingElse();}thrownewIllegalArgumentException("Donotknowhowtohandle"+value);}我希望测试涵盖所有行,但由于代码需要处理所有可能性,如果没有相应的switch语句,我无法提供值。扩展枚举以添加额外的值是不可能的,并且仅仅模拟
我有一个enum开关或多或少像这样:publicstaticenumMyEnum{A,B}publicintfoo(MyEnumvalue){switch(value){case(A):returncalculateSomething();case(B):returncalculateSomethingElse();}thrownewIllegalArgumentException("Donotknowhowtohandle"+value);}我希望测试涵盖所有行,但由于代码需要处理所有可能性,如果没有相应的switch语句,我无法提供值。扩展枚举以添加额外的值是不可能的,并且仅仅模拟
我有一个像这样定义自己的枚举的类:publicclassTest{enumMyEnum{E1,E2};publicstaticvoidaTestMethod(){Test2(E1);//如果我指定MyEnum.E1它工作正常,但我真的只是想将它作为“E1”。知道如何实现这一点,还是必须在另一个文件中定义它才能工作?结论:我无法正确获取导入的语法。由于有几个答案表明这是可能的,我将选择一个给我所需语法的答案,并为其他答案投票。顺便说一句,这其中的一个非常奇怪的部分(在我开始使用静态导入之前),我编写的使用枚举的switch语句不允许枚举以其类型为前缀——所有其余代码需要它。伤了我的头。
我有一个像这样定义自己的枚举的类:publicclassTest{enumMyEnum{E1,E2};publicstaticvoidaTestMethod(){Test2(E1);//如果我指定MyEnum.E1它工作正常,但我真的只是想将它作为“E1”。知道如何实现这一点,还是必须在另一个文件中定义它才能工作?结论:我无法正确获取导入的语法。由于有几个答案表明这是可能的,我将选择一个给我所需语法的答案,并为其他答案投票。顺便说一句,这其中的一个非常奇怪的部分(在我开始使用静态导入之前),我编写的使用枚举的switch语句不允许枚举以其类型为前缀——所有其余代码需要它。伤了我的头。