Java注释处理:可以访问非注释类的“元素”吗?

时间:2010-11-07 11:41:30

标签: java annotations javac annotation-processing

Java注释处理(自Java 6开始)是一个非常好的概念,因为它允许通过Element接口(和其他)访问大量有关类和方法的信息。

但遗憾的是,我必须从经验上发现,未注释的类永远不会传递给自定义注释处理器:

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

我的发现是否属实?或者我可以“欺骗”编译器以提供有关非注释类的自定义注释处理器信息吗?

1 个答案:

答案 0 :(得分:4)

大!

这给了我真正的所有类,而不仅仅是带注释的类:

@SupportedAnnotationTypes("*")

该anotation的规格说:

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

经过测试,有效