这是您正在寻找的另一个示范.此解决方案与以前的解决方案之间的区别在于,此解决方案更通用且可重复使用.事实上这超出了原来的问题,显示了这种方法的一些其他好处.所以你可能只是评论你不需要的位.我还附上一个单元测试来证明行为.
所以基本上只需要在其中一个枚举中查找名称Apple或APPLE:
FruitVeg fvg = getEnum(“APPLE”,Fruits.class,Vegetables.class);
FruitVeg<>是一个界面,它允许也点击Enum内部,这个界面允许用下面的枚举做一些非常有趣的事情.以下是您可以做的一些事情:
> Enum.valueOf(fvg.getDeclaringClass(),fvg.name()):返回枚举值,例如:苹果
> fvg.getRaw():返回枚举值,例如苹果
> fvg.name():返回枚举的字符串名称,例如苹果
> fvg.getFriendlyName():例如苹果
> fvg.getDeclaringClass():返回Class< Enum>例如class ox.dummy.dummyTest $Fruits
> fvg.getClass():class ox.dummy.dummyTest $Fruits返回Class
> EnumSet.allOf(fvg.getDeclaringClass())):例如[苹果,梨]
这是代码
@Test
public void doSimpleTest() throws Exception {
FruitVeg> fvg = getEnum("APPLE", Fruits.class