[JAVA] Holen Sie sich TypeElement und TypeMirror von Class

In der Anmerkungsverarbeitung kann die zu verarbeitende Klasse nur von Element und TypeMirror und nicht als Klasse behandelt werden. Wenn Sie mit einer Klasse vergleichen, die nicht das Verarbeitungsziel ist (z. B. um festzustellen, ob die Zielklasse eine bestimmte Klasse erbt), müssen Sie daher TypeElement oder TypeMirror von Class abrufen. Wenn Sie TypeElement erhalten können, können Sie TypeMirror mit Element # asType () erhalten. Wenn Sie also TypeElement von Class erhalten können, wird es gelöst.

Die zu verwendende Methode ist "java.lang.model.util.Elements # getTypeElement (CharSequence name)" java.lang.model.util.Elements ist eine Schnittstelle. Sie können eine Instanz mit ProcessingEnvironment # getElementUtils () abrufen. Daher sollte es unter Bezugnahme auf processingEnv in der Klasse abgerufen werden, die AbstractProcessor erbt. Der Code sieht also so aus: Java ist übrigens 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")

Das Element ist jetzt ein TypeElement der Klasse "java.lang.String".

Recommended Posts

Holen Sie sich TypeElement und TypeMirror von Class
Holen Sie sich "2-4, 7, 9" aus [4, 7, 9, 2, 3]
[Kotlin] Drei Möglichkeiten, um Klasse von KClass zu bekommen
Klasse und Modell
So erhalten Sie eine Klasse von Element in Java
[Android] Holen Sie sich zufällige Schlüssel und Werte von HashMap
Reverse Assemble / Reverse Compile .Klassendatei aus Kotlin kompiliert
abstrakt (abstrakte Klasse) und Schnittstelle (Schnittstelle)
Klasse und Sofortteil2
Suchen Sie die Adressklasse und den Adresstyp aus der IP-Adresse mit Java
Implementieren Sie die Java-Schnittstelle in der JRuby-Klasse und rufen Sie sie von Java aus auf
Holen Sie sich Videoinformationen von Nikorepo und werfen Sie sie zu Slack
[Kotlin] Holen Sie sich Java Constructor / Method von KFunction und rufen Sie es auf
Ruft Attribute und Werte aus einer XML-Datei in Java ab
java.util.Optional class und null und nicht null
Definition und Instanziierung von Java-Klassen
Unterschied zwischen Klasse und Instanz
Beziehung zwischen Paket und Klasse
Abrufen und Hinzufügen von Daten aus dem Firebase Firestore in Ruby
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
Erstellen Sie einen Kalender aus der Kalenderklasse, indem Sie das Jahr und den Monat angeben