Это можно сделать, но не легко, потому что в checkstyle нет компилятора Java.Таким образом, он может только смотреть на исходный текст и анализировать его синтаксическое дерево, но не может его «понять».
Итак, вы должны загрузить класс из проверки вашего контрольного стиля.
Для этого вам, скорее всего, потребуется определить собственный загрузчик классов, чтобы вы могли загрузить класс, скажем, из вашего рабочего пространства eclipse (или из любого другого источника).
Теперь вы можете просто позвонить instanceof A
и вуаля!
Я бы не стал беспокоиться о производительности.Вы можете добавить LRU-кэш файлов классов в свой пользовательский загрузчик классов, что бы разрешить это.Кроме того, если проверка выполняется в вашей среде IDE, ей нужно только загрузить очень мало классов (тех, которые находятся в дереве прямого наследования), а если она выполняется на всем источнике, она будет работать ночью, нет?
Поскольку этот вопрос уже довольно старый, дайте мне знать, если вам нужен пример кода.