Ich versuche, eine Annotation für eine lokale Variable zu erstellen. Ich weiß, dass ich nicht die Anmerkung in der erzeugten Bytecode behalten kann, aber ich soll den Zugang zu haben, bei der Kompilierung auf die Informationen der Lage sein, von so etwas wie dies zu tun:Wie kann ich einen Annotationsprozessor erstellen, der eine lokale Variable verarbeitet?
@Target({ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface Junk {
String value();
}
nur, das nicht verarbeitet Bekommt von apt oder javac, wenn ich einen ProcessorFactory angeben, die „Junk“ hat darin Typen in der folgenden unterstützt wird:
class JunkTester {
public static void main(String[] args) {
@Junk String tmp = "Hello World";
System.out.println(tmp);
}
}
es wird jedoch funktionieren, wenn ich die @Junk Anmerkung bewegen, bevor public static
Gedanken und oder Problemumgehungen?
neugierig: Was möchten Sie mit lokalen Variablen tun, die mit @Junk kommentiert sind? – irreputable
@Junk ist offensichtlich nur ein Beispiel, aber am Ende möchte ich Code-Generierung von der echten Annotation machen. – apg
ja, aber wenn Sie das tun, manipulieren Sie Code in der Methode, richtig? das scheint im Annotationsprozessor ziemlich schwierig zu sein. – irreputable