BeanUtils.copyProperties 详解

  • Post author:
  • Post category:其他




简介

BeanUtils 提供对 Java 反射和自省 API 的包装,其主要目的是利用反射机制对 JavaBean 的属性进行处理

我们知道,一个 JavaBean 通常包含了大量的属性,很多情况下,对 JavaBean 的处理导致大量

get/set

代码堆积,增加了代码长度和阅读代码的难度



用法

BeanUtils 是这个包里比较常用的一个工具类,这里只介绍它的 copyProperties() 方法,该方法定义如下:

public static void copyProperties(Object source, Object target) throws BeansException {
    copyProperties(source, target, (Class)null, (String[])null);
}

如果你有两个具有很多相同属性的 JavaBean,传统的方式是使用类似下面的语句对属性逐个赋值:

Person p = new Person();
p.setName("Ensk");
p.setAge(18);
p.setGender(1);
p.setMajor("Literature");

Teacher t = new Teacher();
t.setName(p.getName());
t.setAge(p.getAge());
t.setGender(p.getGender());
t.setMajor(p.getMajor());

而使用 BeanUtils 后,代码就大大改观了,如下所示:

Person p = new Person();
p.setName("Ensk");
p.setAge(18);
p.setGender(1);
p.setMajor("Literature");

Teacher t = new Teacher();

BeanUtils.copyProperties(p,t);

如果 Person 和 Teacher 间存在名称不相同的属性,则 BeanUtils 不对这些属性进行处理,需要程序手动处理

作者 Github :

tojohnonly

, 博客 :

EnskDeCode



版权声明:本文为tojohnonly原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。