我有多个嵌套在其中的单个枚举的类的多个实例。这里是说类的一个简化版本:当枚举在一个类中时Java枚举反射
public class FirstClass extends BaseClass {
public enum EnumGroup {
ONE("one"),
TWO("two");
private String mName;
EnumGroup(String name) {
this.mName = name;
}
public String getName() {
return mName;
}
}
// FirstClass methods
}
我的目标是通过编程遍历这些类(即的Firstclass,二等等)和拉枚举(总称为“EnumGroup”),并调用该方法getName()枚举的每个值。我已经在Java反射和枚举上看过这个StackOverflow post,但是当我尝试通过指定路径(com.package.FirstClass.EnumGroup)来获取我的枚举时,我得到一个ClassNotFoundException异常。我猜测把enum放到课堂上是在搞点什么。
Class<?> clz = Class.forName("com.package.FirstClass.EnumGroup");
我不一定需要这样的设置,但最终目标在遍历枚举的每个类中都没有相同的代码。
发布您的代码。 –
嗨@JBNizet - 添加了抛出ClassNotFoundException的行。 – Mark
为什么使用'Class.forName()'?为什么不简单使用类文字'com.package.FirstClass.EnumGroup.class'?你不会有异常,编译器会检查你是否使用了有效的类名,重构会自动使你的代码正确。 –