Chinaunix首页 | 论坛 | 博客
  • 博客访问: 220596
  • 博文数量: 67
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 890
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-17 09:42
文章分类

全部博文(67)

文章存档

2010年(5)

2009年(7)

2008年(55)

我的朋友

分类: Java

2008-08-12 10:35:31

 Jakarta Commons学习笔记 [BeanUtils] 拷贝bean属性

拷贝bean属性

使用PropertyUtils.copyProperties()拷贝一个bean中的属性到另一个bean中,第一个参数是目标bean,第二个参数是源bean,代码片段见下

    Book srcBook = new Book();
    srcBook.setName(
"Jakarta Commons Cookbook");
        
    Book destBook 
= new Book();
        
    PropertyUtils.copyProperties(destBook, srcBook);
        
    
// 输出 
    
// Jakarta Commons Cookbook
    System.out.println(destBook.getName());

PropertyUtils.copyProperties()将检索源bean中所有的属性,然后将其值分配给目标bean中相同的属性,如果上面的例子中Book bean有一个author属性,类型是Person,这个方法将分配其的references给destBook,也就是说copyProperties()方法不会克隆属性的值.看下面的代码片段

    Person author = new Person();
    author.setName(
"Timothy M. O'Brien");
        
    Book srcBook 
= new Book();
    srcBook.setName(
"Jakarta Commons Cookbook");
    srcBook.setAuthor(author);
        
    Book destBook 
= new Book();
        
    PropertyUtils.copyProperties(destBook, srcBook);
        
    
// 结果输出
    
// Author objects identical
    if (srcBook.getAuthor() == destBook.getAuthor()) {
        System.out.println(
"Author objects identical");
    }

copyProperties()方法也能将Map中的内容分酌给bean,如果key同目标bean的属性名相同的话

    Map srcMap = new HashMap();
    srcMap.put(
"name""Jakarta Commons Cookbook");
        
    Book destBook 
= new Book();
        
    PropertyUtils.copyProperties(destBook, srcMap);
    
// 输出
    
// Jakarta Commons Cookbook
    System.out.println(destBook.getName());
阅读(636) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~