Я работаю с обработкой аннотаций в Java 6, то есть с тем, что можно найти в javax.annotation.processing
(не в APT для Java 5).
Интересно, в чем заключается концептуальная разница между различными классами Element
, Type
и Mirror
. Поскольку я действительно не понимаю этого, трудно эффективно программировать процессор аннотаций. Существуют различные методы, которые «конвертируют» между этими понятиями, но я не совсем уверен, что я делаю при их использовании.
Итак, например, позвольте мне иметь экземпляр AnnotationMirror
.
Когда я звоню getAnnotationType()
, я получаю экземпляр DeclaredType
(который по любой причине реализует TypeMirror
).
Тогда я могу позвонить asElement()
и получить экземпляр Element
.
Что случилось?