BeanUtils中的copyProperties方法使用和分析
BeanUtils.copyProperties
这个方法常用来对象映射,以减去繁琐的get set过程
copyProperties(源对象,目标对象, 可编辑的类,可以忽略的属性)
第三个我们需要看一下,他的源码是这样写的
Class<?> actualEditable = target.getClass();
if (editable != null) {
if (!editable.isInstance(target)) {
throw new IllegalArgumentException("Target class [" + target.getClass().getName() + "] not assignable to Editable class [" + editable.getName() + "]");
}
actualEditable = editable;
}
其实这个还是有他存在的必要的,尤其是当出现父类子类的情况下
例如,我现在有一个子类,我想复制自己的字段给另一个对象,但是只需要传父类的属性,这里有两种做法:
- 填写第四个参数
- 第三个参数里面写父类.class
这里我有一个父类Blog,有一个属性id;和一个子类BlogDetail有一个属性content
BlogDetail d = new BlogDetail();
BlogDetail d2 = new BlogDetail();
BlogDetail d3 = new BlogDetail();
d.setId(1L);
d.setContent("123");
BeanUtils.copyProperties(d, d2, Blog.class);
BeanUtils.copyProperties(d, d3);
System.out.println(d2);
System.out.println(d3);
最后结果如下:


浙公网安备 33010602011771号