BeanUtils

1. BeanUtils概述
BeanUtils主要提供了对于JavaBean进行各种操作,
BeanUtils一共分4个包:
org.apache.commons.beanutils
org.apache.commons.beanutils.converters
org.apache.commons.beanutils.locale
org.apache.commons.beanutils.locale.converters
converters 就是专门处理不同传入的 object 该如何转换, locale 就是为了国际化的处理。其中上面两个是BeanUtils的默认实现,它没有针对本地化的任何处理,这个可以提高执行效率。
2.BeanUtils  使用setProperty为属性赋值
使用getProperty获取属性的值

   例:  /* 采用BeanUtils为Student 的name属性赋值 */
@Test
public void test1() throws Exception {
// 1、加载Class文件
Class cls = Class.forName("cn.csdn.beanutils.Student");
// 2、创建bean对象
Student bean = (Student) cls.newInstance();
// 3、采用BeanUtils对name属性赋值
BeanUtils.setProperty(bean, "name", "xxx");
String value = BeanUtils.getProperty(bean, "name");    System.out.println(value);
}

3.若实现了org.apache.commons.beanutils.Converter接口则可以自定义类型之间的转化。由于不做类型转化,用PropertyUtils在速度上会有很大提高!此外,不作类型转化还有一个好处,如下面的代码:

例:Beanutils支持基本数据类型的自动转换
@Test
public void test2() throws Exception {
// 1、定义class文件
String className = "cn.csdn.beanutils.Student";
// 2、定义操作的属性
String name = "age";
// 3、创建class对象
Class cls = Class.forName(className);
// 4、创建bean对象
Student bean = (Student) cls.newInstance();
// 5、为操作的bean对象的name属性赋值
BeanUtils.setProperty(bean, name, "200");
// 6、执行输出
System.out.println(bean.getAge());

}
4.自定义类型转换器:Converter是一个接口不能直接用new Converter()创建对象,要重写接口中的方法register(new Converter(){//重写接口中的方法},Date.class);
这种写法相当于public class MyConverter implements Converter{//重写接口中的方法},并且创建了MyConverter的对象匿名对象。
@Test
public void test6() throws Exception {
Student bean = new Student();
//自定义转换器
ConvertUtils.register(new Converter() {
// type为转换的类型 value为转换的值
public Object convert(Class type, Object value) {
if (value == null) {
return null;
}
SimpleDateFormat sdi=new SimpleDateFormat("yyyy-MM-dd");
Date dt = null;
try {
dt = sdi.parse((String) value);
} catch (ParseException e) {
  throw new ConversionException("日期格式转换有问题....");
}
return dt;
}
}, Date.class);
BeanUtils.setProperty(bean, "birthday", "1997-11-12"); System.out.println(bean.getBirthday());

}


你可能感兴趣的:(apache,bean)