java两个对象属性合并问题

import java.lang.reflect.Field;
import java.lang.reflect.Method;
/** * Created by Administrator on 2016/1/18. */
public class Test {  
public static void copy(Object o1, Object o2) throws Exception {
    Field[] field = o1.getClass().getDeclaredFields();    
    Method[] mm = o1.getClass().getDeclaredMethods();    
    for(int j=0 ; j<field.length ; j++){
          String name = field[j].getName();      
          String type = field[j].getGenericType().toString();      
          if(type.equals("class java.lang.String")){        
              Method m = o1.getClass().getMethod("get"+toUpperCaseFirstOne(name));        
              String value = (String) m.invoke(o1);        
              String value2 = (String) m.invoke(o2);        
              if(value == null && value2!=null){          
                  m = o1.getClass().getMethod("set"+toUpperCaseFirstOne(name), String.class);
                  m.invoke(o1, value2);        
              }      
           } else if("int".equals(type)) {        
               Method m = o1.getClass().getMethod("get"+toUpperCaseFirstOne(name));        
               Integer value = (Integer) m.invoke(o1);        
               Integer value2 = (Integer) m.invoke(o2);        
               if(value == null){          
               m = o1.getClass().getMethod("set"+toUpperCaseFirstOne(name), Integer.class);
               m.invoke(o1, value2);        
           }      }    }  }  
           
           /**   * 首字母转大写   * @param str 待转换的字符串   * @return 返回首字母大写的字符串   */
 public static String toUpperCaseFirstOne(String str){   
  if(Character.isUpperCase(str.charAt(0))){      
  return str;    }else{      
  return (new StringBuilder()).append(Character.toUpperCase(str.charAt(0))).
  append(str.substring(1)).toString();    }  }  }

你可能感兴趣的:(java两个对象属性合并问题)