當有個方法是要接收Object 而這Object可能是model時可用"Field[] "

 import java.lang.reflect.Field;

Ex:

 

public static void main(String[] args) throws Exception {

   member_test mm = new member_test();

   mm.setAddr("111號");

   mm.setCid("H112222");

   mm.setEmail("yyyy@yahoo.com.tw"); 

   mm.setName("KKMAN");

   Map aa = toStringData(mm);

//  ouptu: aa就為   {email=yyyy@yahoo.com.tw, name=KKMAN, addr=111號, cid=H112222}

// 而沒使用到的model成原則就不會出現在aa裡

// 如果是傳List方式要另外判斷

}

 

public static Map toStringData(Object obj) throws IllegalArgumentException, IllegalAccessException{

   Map map = new HashMap();

   Field[] fields = obj.getClass().getDeclaredFields();

   for (int j = 0; j < fields.length; j++) {

      fields[j].setAccessible(true);// 设置这个变量不进行访问权限检查 在类里设置的变量可以为private

      if (fields[j].get(obj) != null && (((fields[j].get(obj) instanceof String) && !"".equals(fields[j].get(obj)))

      || ((fields[j].get(obj) instanceof Integer)))) {

         map.put(fields[j].getName(), fields[j].get(obj));

   } 

}

   return map;

}

 

// instanceof  :測試某一物件是否為另一類別 (class) 的子類別 (subclass) ,或是某介面 (interface) 的實作介面  

// 參考網址: http://pydoing.blogspot.tw/2010/10/java-instanceof.html

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 JoshS 的頭像
    JoshS

    JoshS的部落格

    JoshS 發表在 痞客邦 留言(0) 人氣()