首先贴上代码
private static GxbVO PushVo(List<String> listnr){
GxbVO vo=new GxbVO();
Field[] declaredFields = GxbVO.class.getDeclaredFields();
for(int a=0;a<listnr.size();a++){
try {
//list取值赋到vo里 但第一个字段序列化id不需要赋值
declaredFields[a+1].setAccessible(true);
declaredFields[a+1].set(vo,listnr.get(a));
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return vo;
}
1、 getDeclaredFields():该方法获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
当循环未执行时,通过打断点可以看到getDeclaredFields()方法所获取到的字段。
2、setAccessible(true) 值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。访问private变量 必须为true。
当循环一次时可以看到vo里已经有一个字段有值了
3、循环执行完成时。