0
这可能是一种非常愚蠢的方式,但是说我们有一个包含许多组件的类,那么如何将它们添加到每个具有反射的循环中呢?通过挥杆反射添加组件?
这是我到目前为止已经试过(虽然它显然是注定要失败的):
for(Field bits: this.getClass().getDeclaredFields()){
try {
this.add((Component)Class.forName(bits.getName()).newInstance());
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
每个字段是不一类这样做上述将无法正常工作,但我已经定义了它们是什么,它们应该在运行时存在。
我应该怎样做呢?
不这样做反射只返回声明的字段,但可以修改值或属性 – mKorbel
@mKorbel确实告诉? – Pureferret
每个字段都可以表示编译对象,你可以[在运行时简单地改变它们的值的任何属性](http://stackoverflow.com/questions/6629995/test-if-a-class-contains-an-instance它基于变量的名称),它是测试编译代码中有意或有意破解的正确方法 – mKorbel