2017-02-22 32 views

ответ

3

Kotlin на JVM испытывает ту же проблему, что и Java, в связи с внедрением классных загрузчиков.

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

Источник и дополнительная информация: Can you find all classes in a package using reflection?

Резюмируя связанный нить, существует целый ряд решений, которые позволяют проверить ваш текущий путь класса.

  • Reflections библиотека довольно прямо вперед, и имеет много дополнительных функций, как получение всех подтипов класса, получить все типы/члены с аннотацией аннотацию, необязательно с параметрами аннотаций соответствие и т.д.
  • Guava имеет ClassPath, который возвращает ClassInfo POJO - недостаточно для вашего прецедента, но полезно знать, что Guava доступен почти везде.
  • Напишите свои собственные, запросив ресурсы загрузчика классов и источники кода. Не предлагал бы этот маршрут, если вы не сможете полностью добавить библиотечные зависимости.