BeanUtils给反射对象赋值

 

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)

 

posted @ 2021-03-13 11:40  加瓦加瓦  阅读(223)  评论(0)    收藏  举报