java使用第三方工具BeanUtils实现对象的复制
来源:互联网 发布:蜗牛卡充值话费软件 编辑:程序博客网 时间:2024/06/08 07:07
1.为什么要使用BeanUtils组件?
由于我们经常操作javabean,很频繁的get和set来实现属性的复制,apache提供了这个BeanUtils来实现直接对象的拷贝。
2.BeanUtils的基本实现
导包:
下面两个包是必须要导入的,第一个是源码包。
实现对象的复制:
public class User {private Integer id;private String username;private String gender;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}}@Testpublic void test1() throws Exception{ User user=new User(); BeanUtils.copyProperty(user, "id", "1"); BeanUtils.copyProperty(user, "gender", "男"); System.out.println("单个属性值传入的方式:"+user.getId()+", "+user.getGender()); User newUser=new User(); BeanUtils.copyProperties(newUser, user); System.out.println("整个对象拷贝:"+newUser.getId()+", "+newUser.getGender()); Map<String,Object> map=new HashMap<String,Object>(); map.put("username", "Jerry"); BeanUtils.populate(newUser, map); System.out.println("拷贝map对象:"+newUser.getUsername());}结果:
单个属性值传入的方式:1, 男
整个对象拷贝:1, 男
拷贝map对象:Jerry
3.日期转换器工具
User类:
public class User {private Integer id;private String username;private String gender;private Date birth;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}}增加了生日属性,是日期类型的。
如果我们直接使用BeanUtils.copyProperty(user,"birth",birthString);那么就会报以下警告,转换也不成功。BeanUtils不会把String类型自动转成Date类型。
日期转换器工具类实现:
@Testpublic void test2() throws Exception{User newUser=new User();String birthString="1993-09-30";ConvertUtils.register(new Converter(){@Overridepublic Object convert(Class type, Object value) {if( type != Date.class) return null;if(value == null || "".equals(value.toString().trim())) return null;try {SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");return sdf.parse(value.toString());} catch (ParseException e) {throw new RuntimeException(e);}}},Date.class);BeanUtils.copyProperty(newUser, "birth", birthString);System.out.println(newUser.getBirth());}结果:
Thu Sep 30 00:00:00 CST 1993
通过ConvertUtils的register方法内自定义一个转换器来实现String类型的日期转为Date类型的日期。
简化版:
使用组件提供的日期转换工具类:
@Testpublic void test3() throws Exception{User newUser=new User();String birthString="2016-10-17";ConvertUtils.register(new DateLocaleConverter(), Date.class);BeanUtils.copyProperty(newUser, "birth", birthString);System.out.println(newUser.getBirth());}结果:
Mon Oct 17 00:00:00 CST 2016
0 0
- java使用第三方工具BeanUtils实现对象的复制
- MySQL第三方复制工具
- BeanUtils工具的使用
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 利用Java反射实现JavaBean对象相同属性复制并初始化目标对象为空的属性的BeanUtils
- 使用第三方工具
- 使用第三方的测试工具
- unity使用的第三方工具
- 使用第三方工具把对象转成json串
- apache 关于对象数据的复制工具PropertyUtils类和 BeanUtils类的 copyProperties方法
- BeanUtils工具类的使用
- BeanUtils工具类的使用
- IOS使用第三方工具(RegexKitLite)实现正则表达式
- IOS使用第三方工具(RegexKitLite)实现正则表达式
- iOS使用第三方工具(RegexKitLite)实现正则表达式
- 使用DBUtils第三方工具类,实现MySQL数据库的增删改查
- Ubuntu 14.04安装JDK1.8.0_25与配置环境变量过程笔记。
- IDLE中如何换行?如何运行IDLE程序
- 【jQuery】换肤
- 数组1
- HDU 1361 Parencodings (模拟)
- java使用第三方工具BeanUtils实现对象的复制
- 微信投票怎么刷票之微信投票如何刷票方法
- Java Web前端到后台常用框架介绍
- 剑指offer(11)-从上往下打印二叉树
- Leetcode63: Unique Paths II
- Android Lint常见问题总结(长期更新)
- Sublime test2 插件
- C++ operator关键字(重载操作符)
- HttpConnection底层代码实现Post方法