对象之间相同属性快速复制的三种方法

1:使用commons-beanutils包中的BeanUtils类

用法:引入依赖

<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.7.0</version>
</dependency>
import org.apache.commons.beanutils.BeanUtils;

/*BeanUtils.copyProperties(target,source);
与上边正好相反,将source的属性复制到target(属性字段相同才会进行复制,否则不复制)*/
BeanUtils.copyProperties(studentVo, student);

注意:此种方法需要抛出异常

2:使用spring-beans5.0.8包中的BeanUtils类

用法:引入依赖

<dependency>
 	<groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.2.4.RELEASE</version>
</dependency>
import org.springframework.beans.BeanUtils;

//BeanUtils.copyProperties(source, target);
//将source的属性复制到target(属性字段相同才会进行复制,否则不复制)
BeanUtils.copyProperties(student, studentVo);

3:cglib提供的copy方式

用法:引入依赖

<dependency>
   <groupId>cglib</groupId>
   <artifactId>cglib</artifactId>
   <version>3.1</version>
</dependency>
import net.sf.cglib.beans.BeanCopier;

//将student的属性复制到studentVo(属性字段相同才会进行复制,否则不复制)
BeanCopier copier = BeanCopier.create(Student.class,StudentVo.class,false);
copier.copy(student,studentVo,null);

备注:三者的性能依次为 3 好于 2,2 好于 1

还有多种复制方式,暂不作列举

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java中,你可以使用BeanUtils类(属于Apache Commons BeanUtils库)的copyProperties方法快速合并两个相同对象。该方法会自动将源对象属性复制到目标对象中,如果属性值不为null,则会覆盖目标对象属性值。 以下是一个示例代码: ```java import org.apache.commons.beanutils.BeanUtils; public class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } // Getter和Setter方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } // 合并两个Person对象 Person p1 = new Person("Tom", 20); Person p2 = new Person("Jerry", 22); try { BeanUtils.copyProperties(p1, p2); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } ``` 在上面的示例代码中,我们创建了一个名为Person的类,它包含了两个属性:name和age。然后,我们创建了两个Person对象p1和p2,它们的属性值不同。接着,我们使用BeanUtils.copyProperties方法将p2的属性复制到p1中,从而将它们进行了合并。 请注意,使用BeanUtils类进行属性复制时,源和目标对象必须是同一类型或可以转换为同一类型。如果属性名在源对象中不存在,它将被忽略。此外,如果源对象属性值为null,则不会覆盖目标对象属性值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值