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()); 

}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东寄包裹在速递易里面该怎么办 翼码科技辅助码被删掉了怎么办 用别人的身份证注册的手机号怎么办 大v线做到假线了怎么办 有个摄像头网段不同搜不到怎么办 百度网盘离线下载有违规内容怎么办 抖音上传的照片与音乐不同步怎么办 社保卡里面的钱用完了怎么办 医保卡里面的钱用完了怎么办 手机通知栏变成了搜索栏怎么办 小米手机账号密码忘了手机号怎么办 暑假工没签合同押工资了的怎么办 在日本雅虎拍卖网站买到假货怎么办 没有百度糯米账号但是买票了怎么办 拼多多商家版登陆密码忘记了怎么办 安卓下载的软件闪退怎么办 老司机影视院开通会员看不了怎么办 梦幻西游手游苹果手机打不开怎么办 拼多多笔订单被判定虚假发货怎么办 苹果手机微信接收不到信息怎么办 内衣穿32太小穿34空杯怎么办 楼下的把下水管道堵死了怎么办?? 微信绑定的手机号码已停机怎么办 绑定微信的手机号停机了怎么办验证 绑定手机停机微信怎么验证码怎么办 五菱之光雨刷开关手柄断了怎么办 快手家长控制模式密码忘了怎么办 有陌生人要求你拉他入群怎么办 手机一天接到多个陌生电话怎么办 阳光惠生活登录密码忘了怎么办 一个身份证注册了两个支付宝怎么办 买手办拆了发现坏了怎么办 六个月宝宝喝贝因美过敏怎么办 超市盘点少的货扣员工工资怎么办 孩子东西在学校被偷了怎么办 想退出却不舍的感情不知怎么办? 我被老板摸全身失眠有阴影怎么办 不知道绑定支付宝的微博账号怎么办 银行卡丢了补办后支付宝账户怎么办 未激活的银行卡被锁定了怎么办 手机网银上的钱被盗走了怎么办