Wie kann ich einen Annotationsprozessor erstellen, der eine lokale Variable verarbeitet?

8

Ich versuche eine Annotation für eine lokale Variable zu erstellen. Ich weiß, dass ich die Annotation im generierten Bytecode nicht behalten kann, aber ich sollte in der Lage sein, auf die Informationen zur Kompilierzeit zugreifen zu können, indem ich etwas wie folgt mache:

%Vor%

wird dies nicht von apt oder javac verarbeitet, wenn ich eine ProcessorFactory mit "Junk" in den folgenden unterstützten Typen angabe:

%Vor%

Es wird jedoch funktionieren, wenn ich die @ Junk Annotation vor public static

verschiebe

Gedanken und / oder Umgehungslösungen?

    
apg 19.07.2010, 22:38
quelle

3 Antworten

8

Habe ein paar schnelle Tests gemacht und ein bisschen gesucht, und es sieht so aus, als ob man sich in LOCAL_VARIABLE einklinken würde, wird nicht wirklich unterstützt ... noch:

Ссылка
Ссылка
Ссылка

Könnte total falsch sein, aber so sieht es aus ...

    
kschneid 20.07.2010, 14:18
quelle
5

Es scheint, dass die Typanmerkungsspezifikation (JSR 308) dieses Thema hoffentlich anspricht in der Zukunft ( JDK 8 ?).

    
Xavi López 14.12.2012 12:09
quelle
2

Ab Java 8 werden lokale Variablenanmerkungen in der Klassendatei gespeichert.

Ein standardmäßiger Java-Annotationsprozessor verarbeitet die Körper von Methoden nicht. Mit dem Checker-Framework können Sie jedoch einen Annotationsprozessor schreiben, der alle Annotationen einschließlich lokaler Variablen verarbeitet. Seine Annotationsprozessoren können sogar jede Aussage des Programms überprüfen, ob mit Anmerkungen versehen oder nicht.

    
mernst 21.01.2017 05:53
quelle

Tags und Links