Как я могу создать процессор аннотации, который обрабатывает Локальную переменную?

Я пытаюсь создать аннотацию для локальной переменной. Я знаю, что не могу сохранить аннотацию в сгенерированном байт-коде, но я должен смочь иметь доступ к информации во время компиляции путем выполнения чего-то вроде этого:

@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

Мысли и или обходные решения?

8
задан apg 19 July 2010 в 23:40
поделиться

1 ответ

Провел несколько быстрых тестов и немного поискал, и похоже, что подключение к LOCAL_VARIABLE не поддерживается... пока:

http://forums.sun.com/thread.jspa?threadID=775449
http://www.cs.rice.edu/~mgricken/research/laptjavac/
https://checkerframework.org/jsr308/

Могу быть абсолютно неправ, но вот как это выглядит...

8
ответ дан 5 December 2019 в 11:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: