我目前使用反射来获取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