Javabean 拷贝工具有不少,常见的有 Apache Commons 和 Spring 的 BeanUtils,以及 CGlib 性能强劲的 BeanCopier。它们可能足够好,尤其是 BeanCopier,甚至可以提供媲美直接调用 getters/setters 的性能…
但是…它们提供的功能要么不够用,要么不易用。于是我从自身需求出发,完成了下面这个 Javabean 拷贝工具,名字姑且就叫做 BeanCopyUtils。由于对我来说,性能的优先级暂时还不是很高,所以它可能并不适合看重性能的使用者。
GitHub 地址在这里,欢迎大家体验使用,如果发现 Bug 或是有什么好的改进想法,欢迎提 PR。
以下是 README 的中文版本。
特性
- 深拷贝.
- 支持按条件拷贝指定的字段。
- 支持不同名或不同类型字段间的拷贝。
- 支持拷贝 Bean 的数组或者集合(Collection)。
使用
基础
例如有两个类,一个作为源,另一个作为目标。
public class Source {
private long id = 1;
private int[] numbers = {
1, 2, 3 };
public String getName() {
return "source";
}
}
public class Target {
private long id;
private int[] numbers;
private String name