我读过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/