public String getFiledName(Object arg0) throws IllegalArgumentException,
IllegalAccessException { Class cls = arg0.getClass();
Field[] fields = cls.getDeclaredFields();
String[] name = new String[fields.length];
Object[] value = new Object[fields.length]; Field.setAccessible(fields, true);

for (int i = 0; i < name.length; i++) {
name[i] = fields[i].getName();
System.out.println(name[i] + "->");
fields[i].get(???????)???????????????????参数是什么!!!!!如何取出值???
System.out.println(value[i]); } return null;
}

解决方案 »

  1.   

    其中放的是对象的变量,本例中你还没有生成类的对象。你需要 newInstance() 生成一个对象。
      

  2.   

    public class TestReflect {
            public static void main(String[] args){
                    APerson a=new APerson();
                    Field fields[] = a.getClass().getDeclaredFields();
                    String[] name = new String[fields.length];
                    Object[] value = new Object[fields.length];
                  
                    try{
                    Field.setAccessible(fields, true);
                    for (int i = 0; i < name.length; i++) {
                            name[i] = fields[i].getName();
                            System.out.println(name[i] + "->");
                            value[i] = fields[i].get(a);
                            System.out.println(value[i]);                }
                    }
                    catch(Exception e){
                        e.printStackTrace();
                    }
            }
    }class APerson{
             private  String name;
             private  String sex;
             private int age;          APerson(){
                      name="John";
                      sex="男";
                      age=45;
              }        public int getAge() {
                    return age;
            }
            public void setAge(int age) {
                    this.age = age;
            }
            public String getName() {
                    return name;
            }
            public void setName(String name) {
                    this.name = name;
            }
            public String getSex() {
                    return sex;
            }
            public void setSex(String sex) {
                    this.sex = sex;
            }
    }
      

  3.   

    2楼的朋友 我开始像你那么写的   虽然不会有异常  但还是没有值
    我换了方法了  用method取出来了谢谢你了~