ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

BeanUtils中的copyProperties方法使用和分析

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

最后结果如下:
img

返回列表