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