Java對象拷貝

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()ide

  • 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();}}
相關文章
相關標籤/搜索