try { HashMap hm = new HashMap(); Class className = Constants.class;//Constants就是你的A类 Field[] fields = className.getFields(); for (int i = 0; fields != null && i < fields.length; i++) { hm.put(fields[i].getName(), fields[i].get(fields[i].getName())); } catch (IllegalAccessException iae) { System.err.println(this.getClass().getName() + ".getAllConstants - 出现错误" + iae.toString()); iae.printStackTrace(); } 返回hm是一个hashmap,里面存放着A的成员变量名称和值,例如str1 hello str2 world
执行 RobertDeNiro的代码出现,而且用className.getFields();没有得到定义的变量,只能用className.getDeclaredFields(); java.lang.IllegalArgumentException: object is not an instance of declaring class at java.lang.reflect.Field.get(Native Method) at GOSTR.main(GOSTR.java:20) Exception in thread "main"
class A: public class A { public String str1="helloaa"; public String str2="fuck"; public int uu=100; //B b; }main函数是; import java.lang.reflect.Field; import java.util.HashMap; public class GOSTR { public static void main(String[] args) { try { HashMap hm = new HashMap(); Class className = A.class; //Constants就是你的A类 Field[] fields = className.getFields(); for (int i = 0; i < fields.length; i++) { hm.put(fields[i].getName(), fields[i].get(fields[i].getName())); } } catch (IllegalAccessException iae) {
classA = A.getClass();
classA.getFields() 能得到a的pulic filed,具体实现你再看看api,
然后再循环,把所有的field的值.toString();
HashMap hm = new HashMap();
Class className = Constants.class;//Constants就是你的A类
Field[] fields = className.getFields();
for (int i = 0; fields != null && i < fields.length; i++) {
hm.put(fields[i].getName(), fields[i].get(fields[i].getName()));
} catch (IllegalAccessException iae) {
System.err.println(this.getClass().getName() + ".getAllConstants - 出现错误"
+ iae.toString());
iae.printStackTrace();
}
返回hm是一个hashmap,里面存放着A的成员变量名称和值,例如str1 hello
str2 world
java.lang.IllegalArgumentException: object is not an instance of declaring class
at java.lang.reflect.Field.get(Native Method)
at GOSTR.main(GOSTR.java:20)
Exception in thread "main"
public class A {
public String str1="helloaa";
public String str2="fuck";
public int uu=100;
//B b;
}main函数是;
import java.lang.reflect.Field;
import java.util.HashMap;
public class GOSTR { public static void main(String[] args) {
try {
HashMap hm = new HashMap();
Class className = A.class; //Constants就是你的A类
Field[] fields = className.getFields();
for (int i = 0; i < fields.length; i++) {
hm.put(fields[i].getName(), fields[i].get(fields[i].getName()));
}
} catch (IllegalAccessException iae) {
iae.printStackTrace();
} }
}