Java利用反射将list里的值赋到vo实体类里

首先贴上代码

    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()方法所获取到的字段。
Java利用反射将list里的值赋到vo实体类里_第1张图片
2、setAccessible(true) 值为 true 则指示反射的对象在使用时应该取消 Java 语言访问检查。值为 false 则指示反射的对象应该实施 Java 语言访问检查。访问private变量 必须为true。
当循环一次时可以看到vo里已经有一个字段有值了
Java利用反射将list里的值赋到vo实体类里_第2张图片
3、循环执行完成时。Java利用反射将list里的值赋到vo实体类里_第3张图片

你可能感兴趣的:(总结)