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

posted @ 2025-09-24 10:47  逝痕枫舞  阅读(6)  评论(0)    收藏  举报