- 浏览: 504106 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (285)
- 数据库 (49)
- dwr (1)
- js (35)
- security (6)
- freemaker (4)
- 网站建设 (15)
- css (5)
- javaEE (56)
- 生活点滴 (12)
- 安装与配置 (16)
- ssh2 (13)
- 开源软件 (6)
- web 应用服务器 (6)
- 开发模式和设计模式 (2)
- linux (5)
- 项目管理 (7)
- 计算机杂症 (0)
- appScan (1)
- idea (3)
- android (1)
- java @override 报错处理 (1)
- lucene (5)
- java (2)
- groovy (1)
- Extjs (7)
- asp (2)
- php (2)
- Memcached (1)
- 名言 (1)
- 面试 (1)
- Jmeter (0)
- 微信支付 (1)
- app开发 (1)
- branch分支合并到trunk主干 (1)
- 自动化测试 (1)
- springClond (1)
- ELK (2)
最新评论
-
skykufo:
坑爹啊,我也因为写多了一个div,在ie8浪费了一天
jQuery加载(load、get、post)页面显示空白原因 -
yeyinzhu3211:
帅哥,我想问下,是怎么去除呀?能详细说明下吗?
IntelliJ IDEA 10.5.1 无法断点或停止不动 -
sshitaime:
怎么下载不了啊,能给我一个安装包吗
oracle 10g透明网关组件下载地址(新) -
fuanyu:
xiaohuafyle 写道被你的头像吓尿了 哥们有这么可怕呀 ...
netstat -aon -
wanlt_software:
谢谢。。。。。
oracle 10g透明网关组件下载地址(新)
commons beanutils之复制Bean属性
本文来自:http://fhd001.iteye.com/blog/440930
问题
你有两个相同类型的bean的实例,并需要将其中一个bean的属性复制到另一个中去.
解决方案
使用PropertyUtils.copyProperties()方法从一个bean复制属性到另一个bean.其中第一个参数
指定目的bean,而第二个参数是源bean:
Book book = new Book();
book.setName("Prelude to Poundation");
book.setAuthorName("Asimov");
Book destinationBook = new Book();
PropertyUtils.copyProperties(destinationBook,book);
PropertyUtils.copyProperties()方法从源bean实例中检索出所有属性的值,然后将
这些值赋给目的的实例中的相应属性.如果上面的示例中Book bean含有一个Author类型
的author属性,copyProperties()将把相同的引用对象赋给目的bean.换句话说,该方法
没有克隆bean属性的值.如例:
Author author = new Author();
author.setName("Zinsser");
Book book = new Book();
book.setName("On Writing well");
book.setAuthor(author);
Book destinationBook = new Book();
PropertyUtils.copyProperties(destionationBook,book);
if(book.getAuthor() == destinationBook.getAuthor()){
System.out.println("Author objects identical");
}
现在,两个对象中的author属性值都是Author类同一实例的引用.copyProperyties()并没
有复制bean属性的值.
copyProperties()方法还可以将一个Map的内容复制进bean中,前提是Map各键一一对应于目的
bean的各简单属性:
Map mapOrops = HashMap();
mapProps.put("name","The Art of computer rogramming");
mapProps.put("author","Knuth");
Book destinationBook = new Book();
PropertyUtils.copyProperties(destinationBook,mapProps);
- package test4;
- import java.lang.reflect.InvocationTargetException;
- import java.util.HashMap;
- import java.util.Map;
- import org.apache.commons.beanutils.PropertyUtils;
- /**
- * commons beanutils之复制Bean属性
- * @author fhd001
- */
- public class PropertyUtilsTest7 {
- public static void main(String[] args) {
- /*
- * 例子1 .
- */
- Person p1 = new Person();
- p1.setAge(12 );
- p1.setName("fhd" );
- Person p2 = new Person();
- try {
- PropertyUtils.copyProperties(p2, p1);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
- System.out.println("p2.age: " +p2.getAge()+ "\tp2.name:" +p2.getName());
- /*
- * 例子2 .证明没有克隆bean属性
- */
- Person p3 = new Person();
- p3.setAge(34 );
- p3.setName("ldh" );
- Book b1 = new Book();
- b1.setAuthor(p3);
- b1.setBookName("java" );
- Book b2 = new Book();
- try {
- PropertyUtils.copyProperties(b2, b1);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
- if (b1.getAuthor() == b2.getAuthor()) {
- System.out.println("证明: b1.getAuthor()与b2.getAuthor()返回同一个对象." );
- }
- /*
- * 例子3 .将map中的内容复制到bean中.
- */
- Map<String,Object> m1 = new HashMap<String,Object>();
- m1.put("age" , 31 );
- m1.put("name" , "fhd" );
- Person p6 = new Person();
- try {
- PropertyUtils.copyProperties(p6, m1);
- } catch (IllegalAccessException e) {
- e.printStackTrace();
- } catch (InvocationTargetException e) {
- e.printStackTrace();
- } catch (NoSuchMethodException e) {
- e.printStackTrace();
- }
- System.out.println("p6.name: " +p6.getName()+ "\tp6.age: " +p6.getAge());
- }
- }
package test4; import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Map; import org.apache.commons.beanutils.PropertyUtils; /** * commons beanutils之复制Bean属性 * @author fhd001 */ public class PropertyUtilsTest7 { public static void main(String[] args) { /* * 例子1. */ Person p1 = new Person(); p1.setAge(12); p1.setName("fhd"); Person p2 = new Person(); try { PropertyUtils.copyProperties(p2, p1); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } System.out.println("p2.age: "+p2.getAge()+"\tp2.name:"+p2.getName()); /* * 例子2.证明没有克隆bean属性 */ Person p3 = new Person(); p3.setAge(34); p3.setName("ldh"); Book b1 = new Book(); b1.setAuthor(p3); b1.setBookName("java"); Book b2 = new Book(); try { PropertyUtils.copyProperties(b2, b1); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } if (b1.getAuthor() == b2.getAuthor()) { System.out.println("证明: b1.getAuthor()与b2.getAuthor()返回同一个对象."); } /* * 例子3.将map中的内容复制到bean中. */ Map<String,Object> m1 = new HashMap<String,Object>(); m1.put("age", 31); m1.put("name", "fhd"); Person p6 = new Person(); try { PropertyUtils.copyProperties(p6, m1); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } System.out.println("p6.name: "+p6.getName()+"\tp6.age: "+p6.getAge()); } }
- p2.age: 12 p2.name:fhd
- 证明: b1.getAuthor()与b2.getAuthor()返回同一个对象.
-
p6.name: fhd p6.age: 31
======================================
s.setSchoolId("11");
s.setSchoolName("11");
s.setIntroduce("ddd");
Map<String, String> formMap = new HashMap<String, String>();
formMap.put("schoolId", "22");
formMap.put("schoolName", "22");
PropertyUtils.copyProperties(s, formMap);
System.out.println(s.getIntroduce());
System.out.println(s.getSchoolName());
22
1. public class ObjectTransWrap {
2. public static Object wrap(Object actionObj,Class OperatorAction) throws Exception, InstantiationException{
3. Object o = OperatorAction.newInstance();
4. BeanInfo beanInfo = Introspector.getBeanInfo(actionObj.getClass());
5. PropertyDescriptor[] properties = beanInfo.getPropertyDescriptors();
6. Method get = null;
7. Method set = null;
8. for (int i = 0; i < properties.length; i++) {
9. try{
10. get = properties[i].getReadMethod();
11. set = o.getClass().getMethod( properties[i].getWriteMethod().getName(), new Class[]{properties[i].getPropertyType()});
12. }catch(Throwable a){
13. continue;
14. }
15. if(set!=null&&get!=null){
16. set.invoke(o, new Object[]{get.invoke(actionObj, new Object[]{})});
17. set = null;
18. get = null;
19. }
20. }
21. return o;
22.
23. }
发表评论
-
java 模拟微信浏览器http请求
2020-12-16 08:49 920public static void main(St ... -
java 小数点处理的问题
2015-08-22 16:23 779float num= (float)1/100 ... -
java操作excel 替换指定字符串
2014-12-26 10:27 5304根据excel模板里设置指定的num0,num1,num2 ... -
itext对水印图片的旋转、放大、缩小等操作的示例
2014-07-24 17:17 5799package test1; import java. ... -
java 获取ip
2014-04-25 16:38 858public static String getIpAddr ... -
读取poi
2014-03-12 17:57 1331/** * Writer: fuanyu * Dat ... -
对Map排序
2014-02-20 15:38 790本来来自:http://blog.sina.com.cn/s ... -
java 上下篇文章实现的思路
2014-02-14 15:03 791当前文章的ID =request("id" ... -
Java:String和Date、Timestamp之间的转换
2013-12-03 14:39 10451.1 String -> Date String ... -
ArrayList和数组间的相互转换
2012-07-31 16:00 1115package test.test1; import ... -
No result defined for action and result
2012-07-02 11:50 1007当你在用struts2开发时,如果,从页面跳入action时, ... -
IntelliJ IDEA 10.0 使用javac 编译程序出现“非法字符: \65279 ”解决方法
2012-04-26 11:42 2179一、问题描述: 将在eclipse 创建的项目代码导入 I ... -
map取key及key的值
2012-03-19 15:53 1642public class Test2 { p ... -
用jdbc操作CLOB型数据的两种方式
2012-02-08 10:29 1301最近学Oracle,正好单位OA中Word文件是将文件用BAS ... -
java @override 报错处理
2012-02-02 14:14 1347有时候在自己电脑上编译通过的java代码,在别人那里确编译 ... -
Java判断字符串中是否包含汉字
2011-12-15 11:54 2292有两个方法 import java.util.regex.M ... -
JMagick+ImageMagic处理图片(高质量)
2011-11-27 13:37 2695项目需要简单处理一些用户上传的图片,如缩略图、剪切、旋转、水印 ... -
定时发送邮件的思路
2011-11-19 12:11 1304定时发送邮件:大概是用户选择在某个时间发送邮件; 步骤: ... -
java 解析json
2011-11-10 17:00 1130如下面代码 String str="[{'bus ... -
javamail 收邮件遇到的问题及解决方法
2011-11-04 16:29 22961.java.io.UnsupportedEncodingEx ...
相关推荐
commons-beanutils-bean-collections.jar commons-beanutils-bean-collections.jar
- **复制属性**:`copyProperties()`方法可以将一个JavaBean对象的属性值复制到另一个对象,这在处理模型对象时非常有用。 - **默认值**:当尝试获取不存在的属性或者转换失败时,可以设置默认值来避免异常。 - *...
commons-beanutils-bean-collections-1.7.0.jar
commons-beanutils-1.8.0 jar包: 1.commons-beanutils-1.8.0.jar 2.commons-beanutils-1.8.0-javadoc.jar ...4.commons-beanutils-bean-collections-1.8.0.jar 5.commons-beanutils-core-1.8.0.jar
commons-beanutils-bean-collections-1.8.0.jar
2. **复制属性**:`copyProperties()`方法可以方便地将一个Bean的属性值复制到另一个Bean,这对于数据对象的克隆或者属性初始化非常有用。 3. **动态Bean访问**:通过`getProperty()`和`setProperty()`方法,可以...
- 属性拷贝:可以方便地将一个对象的属性值复制到另一个对象。 - 动态Bean访问:无需了解具体Bean类的结构,即可操作其属性。 - 集合转换:支持将集合数据转换为JavaBean数组或列表。 - EL表达式支持:与JSP ...
3. **复制属性**:`copyProperties()`方法允许将一个对象的所有属性值复制到另一个对象上,这对于创建对象副本或者填充模型数据非常有用。它甚至能处理嵌套属性的复制。 4. **动态Bean操作**:BeanUtils可以动态地...
5. **国际化支持**:BeanUtils也与Apache Commons Locale和ResourceBundle结合,支持多语言环境下的Bean属性设置。 6. **异常处理**:在处理过程中遇到的异常,如无法找到setter或getter方法,BeanUtils会抛出一个`...
4. **Copy Properties**:BeanUtils.copyProperties()方法允许你将一个对象的所有属性值复制到另一个对象,这在对象克隆或数据模型转换中很常见。 5. **Nested Properties**:除了基本的属性操作外,BeanUtils还...
Apache Commons BeanUtils是Java开发中常用的一个工具库,它提供了方便的Bean操作方法,简化了Java对象属性的访问和设置。本篇文章将深入探讨`commons-beanutils-1.8.0-src`的源码,帮助开发者更好地理解和运用这个...
BeanUtils库通过反射机制,可以自动处理Bean的属性访问,包括设置值、获取值以及复制Bean属性等操作,极大地提高了开发效率。 1. **属性访问**:BeanUtils提供了一系列方法,如`getProperty()`和`setProperty()`,...
commons-beanutils-bean-collections-1.8.3.jar
Commons BeanUtils Most Java developers are used to creating Java classes that conform to the JavaBeans naming patterns for property getters and setters. It is natural to then access these methods ...
例如,在复制属性时,如果源对象的某个属性为空,BeanUtils会忽略该属性,不会影响目标对象的其他属性。 4. **反射支持**:BeanUtils库内部使用了Java的反射API,能够在运行时动态地获取类的信息和调用方法,这样...
3. **复制属性**:`copyProperties()`方法可以将一个Java Bean对象的所有属性复制到另一个对象,这对于创建对象的副本或者在对象之间同步属性非常有用。 4. **动态Bean**:BeanUtils还提供了`DynamicBean`接口,...
- **属性访问**:`commons-beanutils` 提供了`BeanUtils`类,能够通过反射机制动态地访问Bean的属性,支持属性的读取和设置。 - **属性拷贝**:`copyProperties()`方法使得能够将一个Bean的所有属性值复制到另一个...
在Java开发中,BeanUtils Core 提供了一种方便的方式来处理Bean属性的设置、获取、复制以及类型转换等任务,从而提高了开发效率。本文将围绕"commons-beanutils-core-1.8.0-BETA.zip"这个压缩包文件,深入解析其核心...
Apache Commons BeanUtils是Java开发中一个非常实用的工具包,它简化了对象属性之间的操作,提供了大量的静态方法来处理Bean对象。这个包的核心思想是基于JavaBeans规范,即具有getter和setter方法的对象,使得...
Apache Commons BeanUtils是Java开发中广泛使用的开源工具库,它简化了JavaBean对象的操作,提供了大量的便捷方法,使得开发者能够更加方便地处理属性的读取和设置,以及对象之间的复制。在这个标题为"commons-...