java - Java注释@Suppresswarnings如何工作?

标签 java jvm java-annotations

我读过Thinking in Java,其中我知道AnnotationProcessor使用Reflection来解析注释。

深入研究源代码后,我知道该注释的保留策略是源代码。所以我想也许有一个处理器可以获取像“unused”这样的字符串,以使 IDE 的 linting 抑制警告。

但我不知道我是否正确,如果不对,那是如何运作的?

非常感谢,我是新手。

最佳答案

通常,注释处理器不使用反射,因为它旨在在编译时使用。相反,它接收源代码编译器模型的抽象,请参阅 the java.compiler module了解详情。

但是,由于对 @SuppressWarnings 注释的支持是 mandated by the language specification ,它不太可能以外部注释处理器的形式随编译器一起提供。相反,该支持将直接内置到编译器本身中。

否则,编译器需要提供一个额外的 API 来控制警告,只是为了提供一个注释处理器来获取注释的值并将它们反馈到附加的 API 中。这将是一个不必要的复杂化,没有额外的值(value)。

关于java - Java注释@Suppresswarnings如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58672229/

相关文章:

java内存不足然后退出

android - 编写自定义 lint 警告以检查自定义注释

java - 防止/使其未经授权用户更改“设置”中的时间

java - 通用论证

java - 同步相同的字符串值

java - spring boot中外键引用主键

java - @EntityScan 和 @ComponentScan 之间的区别

java - 正则表达式仅允许使用数字,连字符,方括号,加号和空格

java - 升级失败时gc log的含义

java - 带线程的异步函数