Список всех классов в пакете, реализующем данный интерфейс

Я хочу перечислить / перечислить (во время выполнения) в моей программе Java все классы, реализующие данный интерфейс, и получить имя класса. Является ли это возможным ? Как я могу сделать ?


person aleroot    schedule 04.01.2012    source источник
comment
возможный дубликат Как найти все подклассы данного класса в Java?   -  person rsp    schedule 04.01.2012
comment
Выберите один из stackoverflow.com/questions/435890 / и stackoverflow.com/questions/3123095/ Вам может потребоваться точная настройка результатов ..   -  person Jayan    schedule 04.01.2012
comment
Удалите дубликаты вопросов, перечисленных @Jayan   -  person parasietje    schedule 04.01.2012


Ответы (2)


Вам следует использовать java Reflection.

Эта ссылка предлагает учебное пособие, охватывающее все, что вы можете делать с помощью Reflection. Вы можете создать свой код, начиная с этого

person Adel Boutros    schedule 04.01.2012

Чтобы уточнить, как это сделать с помощью отражения:

Вы можете начать с Thread.currentThread().getContextClassLoader(). Используя имя пакета в качестве пути, перейдите к ресурсам: Enumeration<URL> resources = classLoader.getResources(path);

Затем вам нужно будет декодировать имена файлов из ресурсов и перебирать их (рекурсивно, поскольку некоторые из них могут быть каталогами). Отфильтруйте ресурсы для файлов .class, создайте экземпляры классов с помощью Class.forName() и проверьте интерфейсы, которые они реализуют.

person kostja    schedule 04.01.2012