BeanUtils
来源:互联网 发布:周扬青淘宝店 编辑:程序博客网 时间:2024/05/01 13:43
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());
}
- beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- beanutils
- beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- Beanutils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- BeanUtils
- 项目需求该怎么做(一)
- SPI总线简介
- Android Google 账户
- 素数的查找
- 中英文占的字节数 TextBox 中的maxSize是字节数还是字符个数
- BeanUtils
- Ubuntu 10.04环境下载&编译Android-2.2.1 (froyo) 源代码
- 为什么要开发房产管理系统和背景
- 用户体验之一——动态排序
- 自动加域批处理脚本
- 长发公主
- 利用BAT脚本加入域和退出域
- 自动加域脚本 /改计算机名/加域/加用户到本地管理员组
- A*寻路算法