Java注解处理: Accessing "Element"s of non-annotated classes possible?

标签 java annotations javac annotation-processing

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

但遗憾的是,我不得不根据经验发现,非注释类永远不会传递给自定义注释处理器:

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

我的发现是真的吗?还是我可以“欺骗”编译器,让我的自定义注释处理器也提供有关未注释 类的信息?

最佳答案

太棒了!

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

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

经过测试,有效!

关于Java注解处理: Accessing "Element"s of non-annotated classes possible?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4117526/

相关文章:

java - Heroku Spring Boot 不构建 Jar

java - 实现compareObjects()的正确方法是什么

java - android中的json解析给出类型不匹配

java - 在哪里可以找到 Spring 3 IoC JavaConfig(注释)教程?

java - 带有自定义注释的 Doxygen

java - main 方法出错

java - micronautreactive-mongo 设置内部服务器错误

java - 如何使用带有@SerializedName 注释的gson 进行序列化?

在 JDK 1.8 中找不到 javac.exe

compiler-construction - javac 编译器创建具有小写类文件名的 jarfile 时出现什么问题?