BeanUtils.copyProperties()参数的赋值顺序实例分析

本篇内容主要讲解“BeanUtils.copyProperties()参数的赋值顺序实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“BeanUtils.copyProperties()参数的赋值顺序实例分析”吧!

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

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

    • 用处

    • 案例: 创建一个源类:source

    • 创建一个目标target源类

    • 创建测试类test

    • ignoreProperties参数

    • 案例

    • 案例测试

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());
    }
}

结果展示:

BeanUtils.copyProperties()参数的赋值顺序实例分析

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());
    }

结果展示:

BeanUtils.copyProperties()参数的赋值顺序实例分析

还有源代码中得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());
    }

结果如下:

BeanUtils.copyProperties()参数的赋值顺序实例分析

到此,相信大家对“BeanUtils.copyProperties()参数的赋值顺序实例分析”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!