Я поставлю этот вопрос перед фактом, что я не профессиональный Java-программист.Я имею опыт работы с встраиваемыми системами на Си, но в колледже я занимался самообучением.
Я создаю простую программу, в которой есть много разных классов "производителей" данных.Каждый класс генерирует какой-то продукт вывода данных.
ArrayList< Class<? extends OtherClass> > list = new ArrayList< Class<? extends OtherClass> >();
//Register producers based on some criteria for the analysis being done
list.add(Producer1.class);
list.add(Producer2.class);
//Some time later, I want to create instances of those classes and link them to a 'report'
Report report = new Report();
report.addProducer( new list.get(0)() );
Конечно, приведенный выше код не работает.Я могу создать ArrayList типов классов, но не могу создать их экземпляр позднее (по крайней мере, я не могу найти правильный синтаксис для этого).
Первоначально я также намеревался сделать это с interfaces
, но синтаксис для создания массива классов, похоже, не работает как extends
в приведенном выше примере кода.Я попробовал следующее, но он не смог проверить синтаксис:
ArrayList< Class<? implements OtherClass> > list = new ArrayList< Class<? implements OtherClass> >();
Я искал подходящий ответ, но не зная правильного вопроса / терминологии, которую можно задать, это может усложнить.Я нашел это решение, но их намерения могли быть другими.
Конечно, если это можно сделать более простым способом, тогда я открыт для всех предложений.