commons 包的 BeanUtils 进行属性拷贝性能较差;Spring 的 BeanUtils 性能相对较好。
public class A {
private String name;
private List<Integer> ids;
}
public class B {
private String name;
private List<String> ids;
}
public class BeanUtilDemo {
public static void main(String[] args) {
A first = new A();
first.setName("demo");
first.setIds(Arrays.asList(1, 2, 3));
B second = new B();
//方法一 Spring 的 BeanUtils
BeanUtils.copyProperties(first, second);
//方法二 使用CGlib 在不定义Converter 的情况
final BeanCopier beanCopier = BeanCopier.create(A.class, B.class, false);
beanCopier.copy(first,second,null);
for (String each : second.getIds()) {
// 类型转换异常
System.out.println(each);}
}}