Это косвенный метод достижения того, к чему вы стремитесь.Я считаю, что каждый модуль GWT полностью упакован в обычный пакет Java.Вы можете использовать
TypeOracle.findPackage(String pkgName)
, чтобы получить экземпляр JPackage, и в этом случае вы используете findType (String typeName), чтобы увидеть, присутствует ли тип в этом пакете.Если он присутствует, вполне вероятно, что на него ссылаются в каком-то файле, и GWT скомпилирует его.
Существует также этот метод getPackages (), который возвращает массив всех пакетов, известных этому оракулу этого типа, поэтому он доступен для компилятора GWT..
JPackage[] getPackages()
Вы можете итеративно findType()
в каждом пакете определить, будет ли тип скомпилирован или нет.
Лучший метод - определить пользовательскую аннотацию и все белые списки.классы, которые вы хотите создать код отражения.Вы можете аннотировать необходимые классы с его помощью и проверять наличие аннотаций перед созданием кода для него.
Мой любимый способ - следовать соглашению об именах над аннотациями (я делал оба вместе) и, таким образом, поддерживатьвнесите в белый список и сделайте соглашение (обычно это REGEX) «настройкой», которую можно изменить по желанию команды.