Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как получить список классов наследников


Автор: vdweller 10.4.2008, 14:14
В общем вопрос в следующем - есть некий абстрактный базовый класс. Есть наследники от него. Сколько их и какие у них имена неизвестно. Необходимо чтобы все эти наследники при запуске программы зарегистрировали себя в неком менеджере классов.  Проблема - заставить эти классы при загрузке приложения выполнить эту регистрацию. Т.к. классы грузятся JVM по мере надобности то до тех пор пока класс не потребуется он не будет загружен и даже статическая секция инициализации не отработает. Как такое можно реализовать?

Автор: vdweller 10.4.2008, 15:43
+ еще один вопрос - если то что я написал невозможно, то можно ли заставить ява машину принудительно при старте приложения загрузить все классы из определенного пакета находящегося в classpath

Автор: LSD 10.4.2008, 15:46
Можно только перечислить эти классы в некотором списке, а затем для каждого вызвать Class.forName().

Автор: vdweller 10.4.2008, 15:49
Блин, обидно, так не хочется имена классов хардкодить (

Автор: LSD 10.4.2008, 15:52
Занеси их в некий файл, и читай оттуда. А список можно вормировать тем же ANT-ом.

Автор: w1nd 13.4.2008, 23:00
vdweller, почитайте спецификацию JAR. В частности, про сервисы, описываемые в manifest.mf. В принципе, это то же, что и LSD советует, но ещё интереснее.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)