#reflection #groovy
#отражение #groovy
Вопрос:
Если у меня есть пакет (foo.bar), есть ли какой-нибудь groovy sugar, который упрощает перечисление всех классов в указанном пакете?
Ответ №1:
Groovy построен поверх Java, поэтому, когда дело доходит до загрузки класса, любой класс Groovy — это просто класс Java. Java не предоставляет способа сделать то, что вы ищете. Можно подумать, что это будет метод на http://java.sun.com/javase/6/docs/api/java/lang/Package.html но нет ничего, что могло бы перечислить классы.
Однако есть способ, которым вы можете это сделать, если вам действительно нужно. Классы — это просто файлы на диске. Перечисление файлов, которые заканчиваются на .class, даст вам список классов Java. Если вы ищете содержимое файла Jar (который является простым zip-файлом, см. это для чтения jar), вы можете открыть jar и просмотреть каждый класс в архиве. Структура каталогов всегда соответствует структуре пакета, поэтому не должно быть сложно взять пакет, который вы ищете, и перечислить все файлы .class в этом каталоге.
Комментарии:
1. Да, вот где я оказался… Я надеялся, что в GDK было что-то, что я пропустил, что решало эту проблему… но для этого не требуется много кода.