Я пытаюсь создать аннотацию для локальной переменной. Я знаю, что не могу сохранить аннотацию в сгенерированном байт-коде, но я должен смочь иметь доступ к информации во время компиляции путем выполнения чего-то вроде этого:
@Target({ElementType.LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface Junk {
String value();
}
только, это не становится обработанным способным, или javac, когда я указываю ProcessorFactory, который имеет "Спам" в, он поддерживал типы в следующем:
class JunkTester {
public static void main(String[] args) {
@Junk String tmp = "Hello World";
System.out.println(tmp);
}
}
Это будет однако работать, когда я перемещу @Junk аннотацию прежде public static
Мысли и или обходные решения?
Провел несколько быстрых тестов и немного поискал, и похоже, что подключение к LOCAL_VARIABLE
не поддерживается... пока:
http://forums.sun.com/thread.jspa?threadID=775449
http://www.cs.rice.edu/~mgricken/research/laptjavac/
https://checkerframework.org/jsr308/
Могу быть абсолютно неправ, но вот как это выглядит...