【发布时间】:2015-08-26 05:11:50
【问题描述】:
假设我有像下面这样带有多个内部类的类:
public class Constants {
public class Class1 {
public static final String IODATA = "IOData";
public static final String HUB_INPUTS = "HubInputs";
}
public class Class2 {
public static final String CLASS_INPUTS = "Class Inputs";
public static final String AUXILIARIES_ON_BUTTON = "Auxiliaries On Button";
}
public class Class3 {
public static final String CLASS_INPUTS = "Class Inputs";
public static final String AUXILIARIES_ON_BUTTON = "Auxiliaries On Button";
}
}
我想访问所有内部类变量,然后我可以编写如下代码,我可以获取变量名称和值:
public static void getClassNameMap() throws Exception {
Constants cons = new Constants();
Constants.Class1 class1 = cons.new Class1();
for (Field fields : class1 .getClass().getFields()) {
System.out.println(fields.get(projectObjectCons).toString() + "--" + fields.getName());
}
}
但是我如何获得所有内部类名称的字符串数组,例如:
String []arr = {"Class1","Class2","Class3"};
如何使用这些字符串类名获取所有内部类变量和值??? 因为我不能使用它的字符串名称来创建类实例。 请帮帮我。
【问题讨论】:
-
如果您要问如何从具有类全名的
String中获取Class对象,答案是Class.forName("com.example.MyClass")。 -
@Andreas - 我认为 OP 想要 内部类的名称
标签: java reflection inner-classes