Java 8 hat eine Funktion namens Typ-Annotationen ( JSR 308 ) . Ich würde es gerne für ein einfaches Objekt-zu-Objekt-Mapper-Framework verwenden. Ich möchte Annotation @ExpectedType wie folgt definieren
%Vor%Und dann benutze es in meinem Code wie folgt:
%Vor% IObjectA
ist eine Schnittstelle, die von den Klassen ObjectA_DTO
und ObjectA_Entity
implementiert wird. Der Service würde ich gerne so nutzen:
Ich möchte den Aufruf von SomeServiceImpl-Methoden ändern, um den Object-Mapper zu verwenden. Es könnte durch generierten Code mit JSR 269 oder durch AOP erreicht werden.
Das Problem ist, dass ich einen einfachen Annotationsprozessor geschrieben habe, der keinerlei Typannotationen behandelt. Die Quelle des einfachen Annotationsprozessors sieht folgendermaßen aus:
%Vor%Irgendwelche Ideen, wie Sie mit Hilfe von SimpleAnnotationsProcessor auf Typ-Annotationen zugreifen können? Die Verwendung der Pluggable Annotation Processing API ist für mich nicht notwendig. Ich denke, sie hätte eine bessere Leistung als Java Reflection. Wie auch immer, ich weiß nicht, wie ich über Java Reflection auf den Typ Annotation zugreifen kann.
Ich bin mir nicht sicher, ob ich verstehe, was Sie erreichen wollen, aber hier ist ein Beispiel, wie Sie mit der Java-Reflektions-API auf Ihre Anmerkungen zugreifen können:
%Vor%Die Ausgabe sieht so aus:
%Vor%Beachten Sie jedoch, dass nicht alle möglichen Typ-Anmerkungen über die Reflektions-API zugänglich sind, aber Sie können sie bei Bedarf immer aus dem Byte-Code lesen (siehe meine Antwort hier ).
Tags und Links java java-8 annotation-processing type-annotation