[JAVA] Obtenir TypeElement et TypeMirror à partir de la classe

Dans le traitement des annotations, la classe à traiter ne peut être gérée que par Element et TypeMirror, et ne peut pas être gérée en tant que classe. Par conséquent, lors de la comparaison avec une classe qui n'est pas la cible de traitement (par exemple pour déterminer si la classe cible hérite d'une classe spécifique), il est nécessaire d'obtenir TypeElement ou TypeMirror à partir de Class. Si vous pouvez obtenir TypeElement, vous pouvez obtenir TypeMirror avec ʻElement # asType () `, donc si vous pouvez obtenir TypeElement depuis Class, cela sera résolu.

La méthode à utiliser est java.lang.model.util.Elements # getTypeElement (CharSequence name) java.lang.model.util.Elements est une interface. Vous pouvez obtenir une instance avec ProcessingEnvironment # getElementUtils (). Par conséquent, il doit être obtenu en faisant référence à processingEnv dans la classe qui hérite de AbstractProcessor. Donc, le code ressemble à ceci: À propos, Java est Java 8.

ExampleProcessor.java


Elements elementUtils = processingEnv.getElementUtils()
TypeElement element = elementUtils.getTypeElement("java.lang.String")

ExampleProcessor.kt


val elementUtils = processingEnv.elementUtils
val element = elementUtils.getTypeElement("java.lang.String")

L'élément est maintenant un TypeElement de la classe java.lang.String.

Recommended Posts

Obtenir TypeElement et TypeMirror à partir de la classe
Obtenez "2-4, 7, 9" de [4, 7, 9, 2, 3]
[Kotlin] Trois façons d'obtenir un cours depuis KClass
Classe et modèle
Comment obtenir une classe depuis Element en Java
[Android] Obtenez des clés et des valeurs aléatoires à partir de HashMap
Assemblage inversé / fichier .class de compilation inverse compilé à partir de Kotlin
abstract (classe abstraite) et interface (interface)
Classe et instant part2
Trouvez la classe d'adresse et le type d'adresse à partir de l'adresse IP avec Java
Implémentez l'interface Java dans la classe JRuby et appelez-la depuis Java
Obtenez des informations vidéo de Nikorepo et envoyez-les à Slack
[Kotlin] Obtenez le constructeur / la méthode Java de KFunction et appelez-le
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
java.util.Optional class et null et non null
Définition et instanciation de classe Java
Différence entre classe et instance
Relation entre le package et la classe
Comment obtenir et ajouter des données depuis Firebase Firestore dans Ruby
[Java] Comment convertir du type String en type Path et obtenir le chemin
Créez un calendrier à partir de la classe Calendar en spécifiant l'année et le mois