2010-11-07 3 views
3

Обработка аннотации Java (начиная с Java 6) является очень хорошей концепцией, поскольку она позволяет получать доступ к большому количеству информации о классах и методах через интерфейс Element (и другие).Обработка аннотаций Java: Доступ к «Элементам» без аннотированных классов возможно?

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

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

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

ответ

4

Отлично!

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

@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 [...] 

Испытаны, работают!

Смежные вопросы