Java從List中直接讀取未知物件屬性資料
阿新 • • 發佈:2019-01-25
有時候我們會遇到在集合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(); } } }
如此,我們就可以處理自己所需要的資料了。