首页 > 其他 > 详细

BeanUtils给反射对象赋值

时间:2021-03-13 15:42:55      阅读:49      评论:0      收藏:0      [点我收藏+]

 

JavaBean的三个条件:

1. 该类必须要公开.

2. 必须要提供一个公开的空参构造方法.

3. 私有属性必须要提供对应的 setters & getters

 

常用方法 :

1. setProperty(bean, name, value);

2. getProperty(bean, name);

3. populate(bean, Map<String, Object>);    map 参数是 `服务器` 提供.   request.getParameterMap();

 

        // 方法一 : setProperty
        
        Class<?> cls = Class.forName("cn.panda.bean.Student");
        Object obj = cls.newInstance();
        
        // 使用 BeanUtils 工具类完成反射对象中数据的注入
        BeanUtils.setProperty(obj, "name", "Jack");
        BeanUtils.setProperty(obj, "age", 18);
        BeanUtils.setProperty(obj, "gender", ‘男‘);
        BeanUtils.setProperty(obj, "score", 90.5f);

 

        Object obj = new Student("张三", 30, ‘男‘, 60.5f);
        
        // 获取数据
        String name = BeanUtils.getProperty(obj, "name");
        String age = BeanUtils.getProperty(obj, "age");
        String gender = BeanUtils.getProperty(obj, "gender");
        String score = BeanUtils.getProperty(obj, "score");

 

        Class<?> cls = Class.forName("cn.panda.bean.Student");
        Object bean = cls.newInstance();
        BeanUtils.populate(bean, this.getParameterMap());  // request.getParameterMap();



    public Map<String, Object> getParameterMap() {   模拟前端数据
        
        Map<String, Object> map = new HashMap<String, Object>();
        
        map.put("name", "渣渣");
        map.put("age", 20);
        map.put("gender", ‘女‘);
        map.put("score", 100f);
        
        return map;
    }

 

动态地为bean类注入数据,在程序运行中,反射获取bean类Class字节码文件cls,,通过cls对属性名key进行反射获取属性对象,对属性对象赋值值(bean的实例对象,value)

 

BeanUtils给反射对象赋值

原文:https://www.cnblogs.com/wenhui2015/p/14528159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!