BeanUtils.copyProperties()参数的赋值顺序说明

 更新时间:2021年09月01日 08:42:39   作者:qiangzai725  
这篇文章主要介绍了BeanUtils.copyProperties()参数的赋值顺序说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

BeanUtils.copyProperties()参数的赋值顺序

BeanUtils.copyProperties(x,y)有两个不同的jar包,引入不同的包,赋值的顺序不一样。

分别是:

org.springframework.beans.BeanUtils
org.apache.commons.beanutils.BeanUtils

引入 1 的话,是将 x 赋值给 y

引入 2 的话,是将 y 赋值给 x

BeanUtils.copyProperties初体验,及其参数含义解释

用处

BeanUtils.copyProperties是org.springframework.beans.BeanUtils;包下得一个用于对象间得属性赋值,避免了常规操作得一个个get再set属性值,非常好用

案例: 创建一个源类:source

 private String username;
    private String password;
    private String email;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "book{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

创建一个目标target源类

 private String username;
    private String password;
    private String email;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "book{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}

创建测试类test

import com.sdqj.system_integration.domain.book;
import com.sdqj.system_integration.domain.book2;
import org.springframework.beans.BeanUtils;

public class test {
    public static void main(String[] args) {
        book bo=new book();
        bo.setEmail("1111");
        bo.setPassword("222");
        bo.setUsername("333");
        book2 bo2=new book2();
        BeanUtils.copyProperties(bo,bo2);
        System.out.println(bo.toString());
        System.out.println(bo2.toString());
    }
}

结果展示:

在这里插入图片描述

ignoreProperties参数

ignoreProperties参数意思是忽略某个参数,使其不被复制,可写多个被忽略得参数

案例

import com.sdqj.system_integration.domain.book;
import com.sdqj.system_integration.domain.book2;
import org.springframework.beans.BeanUtils;

public class test {
    public static void main(String[] args) {
        book bo=new book();
        bo.setEmail("1111");
        bo.setPassword("222");
        bo.setUsername("333");
        book2 bo2=new book2();
        BeanUtils.copyProperties(bo,bo2,"username","password");
        System.out.println(bo.toString());
        System.out.println(bo2.toString());
    }

结果展示:

在这里插入图片描述

还有源代码中得Class<?> editable参数,不太了解其中得含义,但只能放target(目标类)

案例测试

 public static void main(String[] args) {
        book bo=new book();
        bo.setEmail("1111");
        bo.setPassword("222");
        bo.setUsername("333");
        book2 bo2=new book2();
        BeanUtils.copyProperties(bo,bo2,book2.class);
        System.out.println(bo.toString());
        System.out.println(bo2.toString());
    }

结果如下:

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java数据结构与算法之快速排序详解

    java数据结构与算法之快速排序详解

    这篇文章主要介绍了java数据结构与算法之快速排序,结合实例形式详细分析了快速排序的原理、实现步骤、相关操作技巧与注意事项,需要的朋友可以参考下
    2017-05-05
  • Mybatis Plus插入数据后获取新数据id值的踩坑记录

    Mybatis Plus插入数据后获取新数据id值的踩坑记录

    在某些情况下,需要在执行新增后,需要获取到新增行的id,这篇文章主要给大家介绍了关于Mybatis Plus插入数据后获取新数据id值的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • springboot Minio功能实现代码

    springboot Minio功能实现代码

    这篇文章主要介绍了springboot Minio功能实现,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 一篇文章教你如何用多种迭代写法实现二叉树遍历

    一篇文章教你如何用多种迭代写法实现二叉树遍历

    这篇文章主要介绍了C语言实现二叉树遍历的迭代算法,包括二叉树的中序遍历、先序遍历及后序遍历等,是非常经典的算法,需要的朋友可以参考下
    2021-08-08
  • JAVA简单实现MD5注册登录加密实例代码

    JAVA简单实现MD5注册登录加密实例代码

    本篇文章主要介绍了JAVA简单实现MD5注册登录加密实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 使用HttpClient调用接口的实例讲解

    使用HttpClient调用接口的实例讲解

    下面小编就为大家带来一篇使用HttpClient调用接口的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • SpringBoot在项目停止(服务停止/关闭退出)之后执行的方法

    SpringBoot在项目停止(服务停止/关闭退出)之后执行的方法

    这篇文章主要给大家介绍了SpringBoot在项目停止(服务停止/关闭退出)之后执行的两种方法,实现DisposableBean接口和使用@PreDestroy注解,文中有详细的代码讲解,具有一定的参考价值,需要的朋友可以参考下
    2023-12-12
  • 轻松掌握java责任链模式

    轻松掌握java责任链模式

    这篇文章主要帮助大家轻松掌握java责任链模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Java去重排序之Comparable与Comparator的使用及说明

    Java去重排序之Comparable与Comparator的使用及说明

    这篇文章主要介绍了Java去重排序之Comparable与Comparator的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 浅析Java8的函数式编程

    浅析Java8的函数式编程

    函数式编程,这个词语由两个名词构成,函数,编程。这篇文章主要介绍了Java8的函数式编程 ,需要的朋友可以参考下
    2017-05-05

最新评论