BeanUtils工具常用工具类有两个:BeanUtils、ConvertUtils。BeanUtils用于封装数据,ConvertUtils用于处理类型转换
常用方法:
| setProperty(Object obj,String name,Object value) | 设置属性值,如果指定属性不存在,不抛异常 | 
|---|---|
| getProperty(Object obj,String name) | 获得属性值,如果指定属性不存在,抛方法找不到异常 | 
package day1.test.test1;import org.apache.commons.beanutils.BeanUtils;import org.junit.Test;import java.lang.reflect.InvocationTargetException;import java.util.HashMap;import java.util.Map;/*** @author 黄锐* @create 2020-12-22 18:53*实际开发中,需要封装到JavaBean中的数据存放在配置文件*内容:uid=u001 、userName=jack*javaBean中两个概念:字段Field、属性Property*字段:就是成员变量。*例如:private String userName;*字段名称:userName*属性:通过getter或setter方法推敲获得*获得方式:省略set或get前缀,首字母小写*例如:getUserName -->UserName -->userName*注意:一般情况下,字段名称和属性名称一致的。*特殊情况*private String description; //字段名:description*public String getDesc(){ //属性名:desc*return description;* }*1、BeanUtils工具类,提供setProperty给指定属性设置内容和getProperty获得指定属性的值*/public class BeanUtilsDemoTest {@Testpublic void test() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {//1、BeanUtils工具类,提供setProperty给指定属性设置内容和getProperty获得指定属性的值User user = new User();System.out.println("封装前:" + user);//封装数据来自配置文件,底层其实user.setUid("u002")BeanUtils.setProperty(user,"uid","u002");BeanUtils.setProperty(user,"userName","hhhh");System.out.println("封装后:" + user);//2.获得属性值String userName = BeanUtils.getProperty(user, "userName");System.out.println(userName);}@Testpublic void test1() throws InvocationTargetException, IllegalAccessException {//1.模拟数据,创建一个Map,填充需要的数据HashMap<String, String[]> map = new HashMap<>();map.put("uid", new String[]{"u001"});map.put("userName", new String[]{"jack","rose"});map.put("password", new String[]{"1234"});//2.将使用populate进行填充User user = new User();BeanUtils.populate(user,map);System.out.println(user);}@Testpublic void test2() throws InvocationTargetException, IllegalAccessException {//1.模拟数据,创建一个map,填充需要的数据Map<String, String[]> map = new HashMap<String, String[]>();map.put("uid",new String[]{"u001"});map.put("userName",new String[]{"jack","rose"});map.put("password",new String[]{"1234"});map.put("hobbies",new String[]{"敲代码","早上敲代码","晚上敲代码"});map.put("age",new String[]{"123"});//2.使用populate进行填充//可以指向属性,填充一组数据,需要类型必须是[]//如果属性不是数组,将使用map.value表示数组中的第一个。//BeanUtiles支持类型:基本类型和基本类型对应的包装类,自动将字符串转换为基本类型User user = new User();BeanUtils.populate(user,map);System.out.println(user);}}
javaBean
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。
populated:一般来说,这个方法是在org.apache.commons.beanutils.BeanUtils包中的方法。
该方法的函数原型为:BeanUtils.populate( Object bean, Map properties )。这个方法会遍历map
