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();
         }
   }
}

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章