一个基于cglib的bean copy方法
需要guava和cglib:
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class BeanUtils {
private static final Table<Class<?>, Class<?>, BeanCopier> COPIER_TABLE = Tables.synchronizedTable(HashBasedTable.create());
public static <T> T copy(T a, T b) {
BeanCopier copier = COPIER_TABLE.get(a.getClass(), b.getClass());
if (copier == null) {
copier = BeanCopier.create(a.getClass(), b.getClass(), false);
COPIER_TABLE.put(a.getClass(), b.getClass(), copier);
}
copier.copy(a, b, null);
return b;
}
}