1. 程式人生 > >Java從List中直接讀取未知物件屬性資料

Java從List中直接讀取未知物件屬性資料

  有時候我們會遇到在集合List中存放有多種物件的情況,這時候我們就無法直接將List內的資料對映為具體的類,使用get的方法獲取其對應屬性的值。

  在這種情況下我們可以使用Java的反射機制來獲取List中的物件的屬性和內容值。示例程式碼:

for(int k=0;k<list.size();k++){
    Field[] fields = list.get(k).getClass().getDeclaredFields();
   Object oi = list.get(k);
   for (int j = 0; j < fields.length; j++) {
      if(!fields[j].isAccessible()){
           fields[j].setAccessible(true);
      }
      try {
          //獲取指定屬性值的值
         if(fields[j].getName().equals("serial")){
            System.out.println(fields[j].get(oi).toString());
         }
         //迴圈列印所有屬性和對應值
         System.out.println(fields[j].getName()+":"+fields[j].get(oi));
         } catch (IllegalArgumentException e) {
             e.printStackTrace();
         } catch (IllegalAccessException e) {
             e.printStackTrace();
         }
   }
}

  如此,我們就可以處理自己所需要的資料了。