Sun公司的内省API过于繁琐,因此Apache组织结合不少实际开发中的应用场景开发了一套简单、易用的API操做Bean的属性——BeanUtils,在Beanutil中能够直接进行类型的自动转换。apache
BeanUtil工具包下载:ide
1,登陆http://commons.apache.org/beanutils/工具
2, 点击Downloadspa
3, 点击Commons BeanUtils 1.8.3-bin.tar.gz进行下载就OK了orm
使用BeanUtil对象
在项目中导入commons-beanutils-1.8.3.jar包便可开发
BeanUtil的应用get
Beanutils工具包的经常使用类:string
1,BeanUtilsit
2,PropertyUtils
3,ConvertUtils.regsiter(Converter convert, Class clazz)
4,自定义转换器
在这里我举了几个不一样的实例:
实例1代码:
publicvoid test1() throws Exception {
// 加载类
Class cls = Class.forName("cn.csdn.beanutil.Student");
// 建立对象
Student bean = (Student) cls.newInstance();
// 经过beanutil给name属性赋值
BeanUtils.setProperty(bean, "name", "wangli");
Object obj = BeanUtils.getProperty(bean, "name");
System.out.println(obj);
}
实例2代码:
publicvoid test2() throws Exception {
Date da = new Date();
// 加载类
Class cls = Class.forName("cn.csdn.beanutil.Student");
// 建立对象
Student bean = (Student) cls.newInstance();
// 经过Beanutil给属性赋值
BeanUtils.setProperty(bean, "birthday", da);
System.out.println(bean.getBirthday());
}
实例3代码:
publicvoid test4() throws Exception {
//建立对象
Student bean = new Student();
//经过ConvertUtils自动转换日期类型
ConvertUtils.register(new DateLocaleConverter(), Date.class);
//经过BeanUtils给属性赋值
BeanUtils.setProperty(bean, "birthday", "2003-10-30");
//执行
System.out.println(bean.getBirthday());
}
实例4代码:
//自定义转换器
publicvoid test5() throws Exception{
//建立对象
Student bean = new Student();
//经过ConvertUtils自定义转换日期类型
ConvertUtils.register(new Converter() {
public Object convert(Class type, Object value) {
if (value == null) {
returnnull;
} else {
//定义日期格式
SimpleDateFormat sdi = new SimpleDateFormat("yyyy-MM-dd");
Date dt = null;
try {
dt = sdi.parse((String) value);
} catch (ParseException e) {
//抛出异常
thrownew ConversionException("日期格式转化不对.....");
}
return dt;
}
}
}, Date.class);
//经过BeanUtils给属性赋值
BeanUtils.setProperty(bean, "birthday", "1990-13-33");
//执行
System.out.println(bean.getBirthday());
}