我有一个枚举,我希望将该类转换为Class<Enum>
而不进行反射。
例如,枚举是Numbers.java
public enum Numbers {
ONE, TWO, THREE;
}
我能做的最好就是使用反射,如下所示
Class<Enum> enumClass = (Class<Enum>) Class.forName("com.package.inner.eveninner.Numbers");
有没有办法不使用反射呢?
Class<Enum> enumClass = (Class<Enum>) Numbers.class;
给出了编译错误:
incompatible types: Class<Numbers> cannot be converted into Class<Enum>
答案 0 :(得分:2)
请尝试Class<? extends Enum<?>>
。
public enum Numbers {
ONE, TWO, THREE;
}
public void test(String[] args) throws Exception {
Class<? extends Enum<?>> enumClass = Numbers.class;
System.out.println(enumClass);
}