Это, наверное, очень глупый способ, но мы говорим, что у нас был класс с большим количеством полей, которые были компонентами, как можно было бы добавить их в каждый цикл с отражением?Добавление компонентов через отражение в качелях?
Вот что я пытался до сих пор (хотя это, очевидно, обречена на провал):
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();
}
}
Каждый из полей не класс поступая таким образом, выше не будет работать, но я определили, что они собой представляют, и они должны существовать во время выполнения.
Как я должен это делать?
Не делайте этого Reflection возвращает только объявленные поля, но может быть возможно изменить значение или свойства – mKorbel
@mKorbel сказать? – Pureferret
каждый из полей может представлять скомпилированный объект, вы можете [просто изменить любые свойства их значения во время выполнения] (http://stackoverflow.com/questions/6629995/test-if-a-class-contains-an-instance -variable-based-on-its-name), его правильный способ для тестирования целевого или намеренного взлома в скомпилированном коде – mKorbel