美文网首页java成长之路征服Spring
使用BeanUitls提高对象拷贝效率

使用BeanUitls提高对象拷贝效率

作者: Java成长之路 | 来源:发表于2019-03-24 15:29 被阅读2次

首先来创建两个bean
注:一定要有set/get方法,成员变量必须要同名

public class User1 {
    String name;
    String password;
    String phone;
/**省略get/set方法**/
}
public class User2 {
    String name;
    String password;
    String phone;
/**省略get/set方法**/
}

1.Spring的BeanUtils(简单易用)

org.springframework.beans.BeanUtils

BeanUtils.copyProperties(源对象,目标对象)
测试方法:

public static void main(String[] args){
        User1 user1=new User1();
        user1.setName("user1_name");
        user1.setPassword("user1_password");
        user1.setPhone("user1_phone");
        User2 user2=new User2();
        BeanUtils.copyProperties(user1,user2);
        System.out.println(user2.toString());
    }

执行结果:

User2(name=user1_name, password=user1_password, phone=user1_phone)

注:必须保证同名的两个成员变量类型相同,同名属性一个是包装类型,一个是非包装类型也是可以的

2.Apache的BeanUtils(拓展性强,相对复杂)

org.apache.commons.beanutils.BeanUtils

BeanUtils.copyProperties(目标对象,源对象)
需要引入依赖

    <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.9.3</version>
    </dependency>

测试方法:

public static void main(String[] args) throws InvocationTargetException, IllegalAccessException {
        User1 user1=new User1();
        user1.setName("user1_name");
        user1.setPassword("user1_password");
        user1.setPhone("user1_phone");
        User2 user2=new User2();
        BeanUtils.copyProperties(user2,user1);
        System.out.println(user2.toString());
    }

执行结果:

User2(name=user1_name, password=user1_password, phone=user1_phone)

commons-beanutils则施加了很多的检验,包括类型的转换,甚至于还会检验对象所属的类的可访问性。BeanUtils能够顺利的完成对象属性值的复制,依赖于其对类型的识别。

原文参考https://www.jianshu.com/p/9b4f81005eb7

相关文章

  • 使用BeanUitls提高对象拷贝效率

    对象拷贝 对象拷贝分为深拷贝和浅拷贝。根据使用场景进行不同选择。在Java中,数据类型分为值类型(基本数据类型)和...

  • 使用BeanUitls提高对象拷贝效率

    首先来创建两个bean注:一定要有set/get方法,成员变量必须要同名 1.Spring的BeanUtils(简...

  • beanutils报错org.apache.commons.co

    使用beanuitls.jar出现错误:java.lang.ClassNotFoundException: org...

  • 拷贝构造函数

    通过拷贝新建对象时可使用拷贝构造函数(特别是对象的传值时)。仅在代码中需要拷贝一个类对象的时候使用拷贝构造函数;不...

  • No.40 jQuery对象拷贝、多库共存

    一、jQuery 对象拷贝 如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend()...

  • jQuery 其他方法

    1. jQuery 对象拷贝 如果想要把某个对象拷贝(合并) 给另外一个对象使用,此时可以使用 $.extend(...

  • 深拷贝/浅拷贝详谈

    定义 深拷贝:对指针和对象本身进行了拷贝 浅拷贝:只拷贝了指针,并未拷贝对象本身 使用场景 对非容器类对象(如NS...

  • JS深拷贝的实现方法

    1、使用递归的方式实现深拷贝 2、通过 JSON 对象实现深拷贝 注意:JSON对象实现深拷贝无法实现对对象中方法...

  • iOS-基础篇(深拷贝和浅拷贝)

    浅拷贝 “浅拷贝仅仅是把对象的引用复制,或者说对象的指针“ 不是所有对象都能使用copy ,使用了copy必须遵守...

  • 高级二.深浅copy

    1. ==,is的使用 2.拷贝 2.1 浅拷贝与深拷贝 浅拷贝是对于一个对象...

网友评论

    本文标题:使用BeanUitls提高对象拷贝效率

    本文链接:https://www.haomeiwen.com/subject/lbeuvqtx.html