我目前使用反射來獲取GUI類的聲明字段。但是我找不到一種方法能夠將字段轉換爲我需要的對象。如何將一個反射字段轉換爲另一個對象?
我需要的是能夠獲得字段的實際對象,所以如果例如返回的字段是JLabel類型,我需要能夠在JLabel中對字段進行類型轉換以便訪問對象
以下是我使用的代碼,但是實際的對象組件沒有被檢索:
for (int i = 0; i< fields.length; i++) {
this.fields.add(fields[i]);
Class<?> fieldType = fields[i].getType();
try {
Component c = (Component) fieldType.newInstance();
System.out.println(c.getX + " " + c.getY());
} catch (InstantiationException ex) {
Logger.getLogger(HeatMap.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(HeatMap.class.getName()).log(Level.SEVERE, null, ex);
}
}
什麼異常?請顯示堆棧跟蹤 – amit 2012-03-28 11:38:52
你究竟在做什麼? (你期望類型轉換爲你做什麼?) – ruakh 2012-03-28 11:40:41
我需要能夠將字段轉換爲其他UI組件,因爲我需要能夠使用UI對象...例如將字段轉換爲JLabel – ict1991 2012-03-28 11:46:06