我有一個Java反射的問題。這是我的代碼非常簡化。如何動態實例化和調用Java中的類成員的方法?
比方說,我們有這個類:
public class MyClassA {
private MyClassB myPropertyB_1;
private MyClassB myPropertyB_2;
...
}
而這個類(用作MyClassA屬性:
public class MyClassB {
private int myProperty;
public MyClassB(){
}
...
}
我想用Java反射做這樣的事情在MyClassA
:
public void methodThatUsesReflectionOnProperty(int id){
// 1. Get the field using id
// 2. Instantiate this field dynamically (i.e. new MyClassB())
// 3. Invoke some methods on this field dynamically (setters, addlisteners...)
}
我怎麼能這樣做
是否有可能您可以考慮重新設計,不需要您使用反射?要求這樣做似乎很難(如果你完全控制了這些類)。例如,你可以在'MyClassA'中維護一個屬性列表,並提供getter setter方法來允許其他類訪問和修改它們? – 2012-07-25 14:58:11
其實我正在開發Android,並試圖自動生成窗體和字段列表,我考慮重構所有內容,但似乎不可能。 – cleroo 2012-07-25 15:02:56