BeanUtils中copyProperties的使用

BeanUtils中copyProperties的作用是将一个对象中的属性值赋值(拷贝)给另一个对象中对应的属性,并且对象之间可以没有任何联系。其中赋值成功的属性对应的属性名和属性类型必须相同,否则对应的属性值不会从一个对象赋值给另一个对象,但是此时不影响其他属性值的拷贝。具体如下所示。

1、实体类

public class Model01 {
    private String name;
    private int age;
    private String city;

    @Override
    public String toString() {
        return "Model01{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", city='" + city + '\'' +
                '}';
    }
}
public class Model02 {
    private String name;
    private String age;
    private String city;

    @Override
    public String toString() {
        return "Model02{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", city='" + city + '\'' +
                '}';
    }
}


2、将符合条件的属性值全部从一个对象赋值给另一个对象——copyProperties(Object source, Object target)

public class App {
    public static void main( String[] args ) {
        Model01 model01 = new Model01();
        Model02 model02 = new Model02();
        model01.setName("jack66");
        model01.setAge(12);
        model01.setCity("gz");
        model02.setName("henry");
        model02.setAge("32");
        model02.setCity("sz");
        BeanUtils.copyProperties(model01,model02);
        System.out.println(model01);
        System.out.println(model02);
    }
}
打印结果

Model01{name='jack66', age=12, city='gz'}
Model02{name='jack66', age='32', city='gz'}

3、忽略某些属性的赋值——copyProperties(Object source, Object target, String... ignoreProperties)

public class App {
    public static void main( String[] args ) {
        Model01 model01 = new Model01();
        Model02 model02 = new Model02();
        model01.setName("jack66");
        model01.setAge(12);
        model01.setCity("gz");
        model02.setName("henry");
        model02.setAge("32");
        model02.setCity("sz");
        String[] ignoreProperties = {"name"};
        BeanUtils.copyProperties(model01,model02,ignoreProperties);
        System.out.println(model01);
        System.out.println(model02);
    }
}
打印结果

Model01{name='jack66', age=12, city='gz'}
Model02{name='henry', age='32', city='gz'}

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值