代码一:
package com.beans;
import org.springframework.cglib.beans.BeanCopier;
import java.util.HashMap;
import java.util.Map;
public class BeanCopierUtils {
public static Map<String,BeanCopier> beanCopierMap = new HashMap<String,BeanCopier>();
public static void copyProperties(Object source, Object target){
String beanKey = generateKey(source.getClass(), target.getClass());
BeanCopier copier = null;
if(!beanCopierMap.containsKey(beanKey)){
copier = BeanCopier.create(source.getClass(), target.getClass(), false);
beanCopierMap.put(beanKey, copier);
}else{
copier = beanCopierMap.get(beanKey);
}
copier.copy(source, target, null);
}
private static String generateKey(Class<?> class1,Class<?>class2){
return class1.toString() + class2.toString();
}
}
代码二:
package com.beans;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal;
public class BeanUtilsEx extends BeanUtils {
public static void copyProperties(Object dest, Object orig) {
try {
BeanUtils.copyProperties(dest, orig);
} catch (IllegalAccessException ex) {
ex.printStackTrace();
} catch (InvocationTargetException ex) {
ex.printStackTrace();
}
}
static {
ConvertUtils.register(new DateConvert(), java.util.Date.class);
ConvertUtils.register(new DateConvert(), java.sql.Date.class);
ConvertUtils.register(new BigDecimalConvert(), BigDecimal.class);
}
}