Java注解@Suppresswarnings是如何工作的?

Java注解@Suppresswarnings是如何工作的?,java,jvm,java-annotations,Java,Jvm,Java Annotations,我读过Java Thinking,其中我知道AnnotationProcessor使用Reflection解析注释 在深入了解源代码之后,我知道此批注的保留策略是源代码。因此,我认为可能有一个处理器,它获取字符串“unused”,使IDE的linting抑制警告 但我不知道我是否是对的,如果不是,那是怎么回事 非常感谢,我是个新手。通常,注释处理器不使用反射,因为它是在编译时使用的。相反,它接收源代码的编译器模型的抽象,有关详细信息,请参阅 但是,由于对@SuppressWarnings注释的支

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

在深入了解源代码之后,我知道此批注的保留策略是源代码。因此,我认为可能有一个处理器,它获取字符串“unused”,使IDE的linting抑制警告

但我不知道我是否是对的,如果不是,那是怎么回事


非常感谢,我是个新手。

通常,注释处理器不使用反射,因为它是在编译时使用的。相反,它接收源代码的编译器模型的抽象,有关详细信息,请参阅


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


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

通常,注释处理器不使用反射,因为它打算在编译时使用。相反,它接收源代码的编译器模型的抽象,有关详细信息,请参阅


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


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

@SuppressWarnings的特殊之处在于它直接由编译器处理,而不是通过实际的注释处理器。但是,请注意,我并没有这个推测的依据。
@SuppressWarnings
可能很特别,因为它是由编译器直接处理的,而不是通过实际的注释处理器。然而,请注意,我没有这个推测的依据。