由于java内部提供的BeanInfo操作JavaBean时比较麻烦,于是在Apache官网上出现了BeanUtils,此工具简化了我们队JavaBean属性等的操作,同时还提供了一些比较使用强大的工具。
提醒:在使用BeanUtils前需要导入另外一个包commons-logging,否则可能会出现不能运行的情况,因为BeanUtils中用到了此包。
BeanUtils操作bean的属性非常方便,如下:
//定义类的对象
Person p = new Person();
//设置该对象的属性,参数分别为:待设置属性的对象,属性名称,属性值(可传任意类型,自动转化)
BeanUtils.setProperty(p, "name", "xxxx");//设置人的名字
BeanUtils.setProperty(p, "age", "12");//自动将string转化为int型,只支持8种数据类型
BeanUtils.setProperty(p, "address", "四川达州");
BeanUtils.setProperty(p, "birthday", "1991-11-23");
System.out.println(p.getName());
System.out.println(p.getAge());
System.out.println(p.getBirthday());
System.out.println(p.getAddress());
不仅如此,还可以采用map的形式来设置Bean的属性:
Map map = new HashMap<>();
map.put("name", "suse");
map.put("age", "13");
map.put("address", "四川 自贡");
map.put("birthday", "1992-11-22");
ConvertUtils.register(new DateLocaleConverter(), Date.class);//注册转化器,将按照本地格式转化为日期对象
Person p = new Person();
BeanUtils.populate(p, map);//用map集合中的值,填充bean的属性
System.out.println(p.getName());
System.out.println(p.getAge());
System.out.println(p.getBirthday());
System.out.println(p.getAddress());
同时BeanUtils以提供了帮助文档以及源码下载,