public static void copy(Object src , Object tar){
try {
Class<?> srcClazz = src.getClass();
Class<?> tarClazz = tar.getClass();
Field[] srcClazzDeclaredFields = srcClazz.getDeclaredFields();
for(Field srcField : srcClazzDeclaredFields){
String srcFieldNameBefore = srcField.getName();
String srcFieldNameFirstUp = srcFieldNameBefore.substring(0,1).toUpperCase()
srcFieldNameBefore.substring(1,srcFieldNameBefore.length());
Method srcMethod = null;
Method tarMethod = null;
String getMethodName = "get" + srcFieldNameFirstUp;
String setMethodName = "set" + srcFieldNameFirstUp;
Class reType = null;
try {
srcMethod = srcClazz.getDeclaredMethod(getMethodName);
}catch (Exception e){}
if(srcMethod != null){
try {
reType = srcMethod.getReturnType();
tarMethod = tarClazz.getDeclaredMethod(setMethodName , reType);
}catch (Exception e){}
if(tarMethod != null){
Object obj = srcMethod.invoke(src);
tarMethod.invoke(tar,obj);
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}