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