如何实现javabean的属性拷贝.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在struts的实践过程中,经常两个javabean交换数据的情况,如ActionForm与数据库中的表相关的bean交换数据。通常情况下要写很多get和set语句,一个个属性依次拷贝。这样的话,如此重复繁重的工作让程序员感觉不到编程的快乐。于是在网上查相关资料知,在apache.org有一个project:common-beanutil,提供的一个BeanUtil类,这个类有一个静态方法BeanUtil.copyProperties()实现了该功能。后来我在与java相关的书上知道的java的反射机制(reflect),偿试着并实现了两个javabean的属性拷贝功能。   import java.lang.reflect.*;   /**   @author Xiaobo Zheng   @date 2005-12-28   */   public class BeanUtil2{   /**   @parameter Object obj1,Object obj2   @return Object   用到反射机制   此方法将调用obj1的getter方法,将得到的值作为相应的参数传给obj2的setter方法   注意,obj1的getter方法和obj2方法必须是public类型   */   public static Object CopyBeanToBean(Object obj1,Object obj2) throws Exception{   Method[] method1=obj1.getClass().getMethods();   Method[] method2=obj2.getClass().getMethods();   String methodName1;   String methodFix1;   String methodName2;   String methodFix2;   for(int i=0;i methodName1=method1[i].getName();   methodFix1=methodName1.substring(3,methodName1.length());   if(methodName1.startsWith(get)){   for(int j=0;j methodName2=method2[j].getName();   methodFix2=methodName2.substring(3,methodName2.length());   if(methodName2.startsWith(set)){   if(methodFix2.equals(methodFix1)){   Object[] objs1=new Object[0];   Object[] objs2=new Object[1];   objs2[0]=method1[i].invoke(obj1,objs1);//激活obj1的相应的get的方法,objs1数组存放调用该方法的参数,此例中没有参数,该数组的长度为0   method2[j].invoke(obj2,objs2);//激活obj2的相应的set的方法,objs2数组存放调用该方法的参数   continue;   }   }   }   }   }   return obj2;   }   }   再建一个javabean,并测试   import java.lang.reflect.*;   public class User {   private String name;   private String id;   public void setName(String name){   this.name=name;   }   public String getName(){   return this.name;   }   public void setId(String id){   this.id=id;   }   public String getId(){   return this.id;   }   public static void main(String[] args) throws Exception{   User u1=new User();   u1.setName(zxb);   u1.setId(3286);   User u2=new User();   u2=(User)BeanUtil2.CopyBeanToBean(u1

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档