Обработка аннотаций Java: Доступ к элементам неаннотированных классов возможен? - PullRequest
3 голосов
/ 07 ноября 2010

Обработка аннотаций Java (начиная с Java 6) - очень хорошая концепция, поскольку она позволяет получить доступ к большому количеству информации о классах и методах через интерфейс Element (и другие).

Но, к сожалению, мне пришлось эмпирически выяснить, что неаннотированные классы никогда не передаются в пользовательский процессор аннотаций:

warning: No SupportedAnnotationTypes annotation found on
    my.TESTProcessor, returning an empty set.

Верны ли мои выводы? Или я могу «обмануть» компилятор, чтобы он предоставил своему процессору пользовательских аннотаций информацию о неаннотированных классах?

1 Ответ

4 голосов
/ 07 ноября 2010

Отлично!

Это дает мне действительно все классы, а не только аннотированные:

@SupportedAnnotationTypes("*")

Спецификация этой аннотации гласит:

[...] Finally, "*" by itself represents the set of all annotation types,
including the empty set. Note that a processor should not claim "*"
unless it is actually processing all files [...] 

Проверено, работает !

...