Class c = Account.class;Account account = new Account();//获取Account实体类中,所有声明的属性
Field[] fields = c.getDeclaredFields();for(int i = 0 ;i<fields.length;i++)
{    //在迭代时,我怎样才能知道fileds[i]的类型呢
    fields[i].set(account,"放入一个Object类型的值");
}

解决方案 »

  1.   

    能不能详细点,完成对这个属性的赋值
    fields[i].set(account,obj);
      

  2.   

    private / protected / default 类型的 field 可能不允许访问,需要  fields[i].setAccessible(true) 然后再 fields[i].set(xxxx, "FEFWEFWEF");
      

  3.   

    import java.lang.reflect.Field;
    class Account{
    private int id;
    private String name;
    public String toString(){
    return name+","+id;
    }
    }
    public class ReflectTest {
    public static void main(String[] args)throws Exception {
    Account account = new Account();
    Class cls = Account.class;
    Field[] fields = cls.getDeclaredFields();
    for(Field field : fields){
    field.setAccessible(true);
    Class fieldType = field.getType();
    if(fieldType == int.class){
    field.set(account, 1);
    }else if(fieldType == String.class){
    field.set(account, "aaaaaa");
    }
    }
    System.out.println(account);
    }
    }