Estoy trabajando con el proceso de anotación de Java 6, es decir, lo que se puede encontrar en javax.annotation.processing
(no APT de Java 5).¿Cuál es la concepción detrás: Tipo - Elemento - Espejo
Me pregunto cuál es la diferencia conceptual entre las diferentes clases Element
, Type
y Mirror
. Como realmente no entiendo esto, es difícil programar eficientemente un procesador de anotación. Hay varios métodos que 'convertir' entre estas nociones, pero no estoy muy seguro de lo que estoy haciendo al usarlos.
Por lo tanto, permítame tener una instancia de AnnotationMirror
.
Cuando llamo al getAnnotationType()
obtengo una instancia de DeclaredType
(que implementa TypeMirror
por cualquier razón).
Luego puedo llamar al asElement()
en este caso y obtener una instancia de Element
.
¿Qué ha pasado?
El javadoc no es realmente claro sobre qué es TypeElement. Creo que está más vinculado a la declaración del tipo (por lo tanto, los parámetros de tipo), mientras que TypeDeclaration (nombre confuso) está más vinculado al uso del tipo como, por ejemplo, en una declaración de variable. Me da la idea de que estos dos términos son difíciles de entender en el contexto de las anotaciones. – Wolfgang
Pero según esta [pregunta] (http://stackoverflow.com/questions/31245638/understanding-typeelement-and-declaredtype-interface-in-java), 'DeclareType' debe ser' MyException.class' – overexchange