前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java Bean属性拷贝 API

Java Bean属性拷贝 API

原创
作者头像
HLee
修改2021-07-30 11:35:57
1.1K0
修改2021-07-30 11:35:57
举报
文章被收录于专栏:房东的猫房东的猫

简介

Java中JavaBean对象之间的拷贝通常是用get/set方法,但如果你有两个属性相同的JavaBean或有大部分属性相同的JavaBean,对于这种情况,可以采用以下几个简便方法处理。

代码语言:javascript
复制
.使用org.apache.commons.beanutils.BeanUtils.copyProperties
.使用org.springframework.beans.BeanUtils.copyProperties
.使用net.sf.cglib.beans.BeanCopier.copy
.使用org.springframework.cglib.beans.BeanCopier.copy
.使用mirror mirror.setValue
.使用自写反射
.使用json序列化

BeanUtils

BeanUtils.copyProperties通过java反射将类中当前属性字段对应的内容复制到另外一个类中。

代码语言:javascript
复制
@Data
public class Book {
    private String username;
    private String password;
    private String email;
}

public class Book2 {
    private String username;
    private String password;
    private String email;
}

public static void main(String[] args) {
    Book book = new Book();
    book.setEmail("abc@163.com");
    book.setPassword("123456");
    book.setUsername("happygiraffe");
    
    Book2 book2 = new Book2();
    
    //添加了忽略username属性的赋值
    BeanUtils.copyProperties(book, book2, "username");

    System.out.println(book.toString());
    System.out.println(book2.toString());
}

输出:
Book{username='happygiraffe', password='123456', email='abc@163.com'}
Book2{username='null', password='123456', email='abc@163.com'}    

PropertyUtils

使用PropertyUtils.copyProperties()拷贝一个bean中的属性到另一个bean中,第一个参数是目标bean,第二个参数是源bean。

代码语言:javascript
复制
Book srcBook = new Book();  
srcBook.setName("爱你是我的错");  
      
Novel novel= new Novel();//小说具有书的属性。  
      
PropertyUtils.copyProperties(novel, srcBook);  

输出:
System.out.println(novel.getName());  

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • BeanUtils
  • PropertyUtils
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档