相关疑难解决方法(0)

java:反射获取枚举

这与Java类似但不完全相同:使用反射实例化枚举

我有一个Map<Enum<?>, FooHandler>我想用来映射Enums(我不关心哪种类型,或者即使它们是同一类型,只要它们是枚举常量)到我的FooHandler班级.

我想使用我阅读的文本文件填充此地图.我可以让它工作,但我有两个警告我想绕过:

static private <E extends Enum<E>> E getEnum(String enumFullName) {
  // see https://stackoverflow.com/questions/4545937/
  String[] x = enumFullName.split("\\.(?=[^\\.]+$)");
  if (x.length == 2)
  {
    String enumClassName = x[0];
    String enumName = x[1];
    try {
      Class<E> cl = (Class<E>)Class.forName(enumClassName);
      // #1                          

      return Enum.valueOf(cl, enumName);
    }
    catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  }
  return null;
}

public void someMethod(String enumName, String fooHandlerName)
{
   FooHandler fooHandler = getFooHandler(fooHandlerName);
   Enum e = getEnum(enumName);
   // …
Run Code Online (Sandbox Code Playgroud)

java reflection enums

8
推荐指数
2
解决办法
2万
查看次数

标签 统计

enums ×1

java ×1

reflection ×1