@SuppressWarnings(unused)
J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。
@SuppressWarnings 批注允许您选择性地取消特定代码段(即,类或方法)中的警告。其中的想法是当您看到警告时,您将调查它,如果您确定它不是问题,您就可以添加一个 @SuppressWarnings 批注,以使您不会再看到警告。虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷。 @Override。这是一系列内置的批注之一。@Override的意思是“方法必须替代其超类中的一个方法;如果做不到这一点,那么就会有东西出错,使得编译器产生错误”。没有@Override,代码照样会正常工作,但是假设有人修改BaseExample,让myMethod带有参数。如果你没有使用@Override批注,代码仍然会被编译,隐藏了子类没有替代超类方法的问题。如果有@Override的话,你会在编译期间看到发生错误。 import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) [email protected] FormLabel {String label(); int width() default 40; }@Retention和@Target。@Retention用来定义通过设置RetentionPolicy的值批注能够在构建-运行过程中存留多久。这里我们使用了RUNTIME,这意味着我们定义的批注将会在运行期间被保留在代码里。RetentionPolicy.SOURCE将被用于一个我们希望被编译器使用然后抛弃的批注。RetentionPolicy.CLASS让它们保留在生成的类文件里,但是能够在运行期间被Java虚拟机(JVM)访问到。 @Target批注让你能够将它限制在代码的特定部分里。在本文里,我们把目标瞄准了ElementType.METHOD,这意味着它只能够与方法关联在一起。其他ElementTypes有CONSTRUCTOR、FIELD、LOCAL_VARIABLE、PACKAGE、PARAMETER和TYPE,每个都能够把批注限制到该种类型的Java语言元素
@Documented和@Inherited。它们都可以被加到批注定义里。@Documented的作用是,批注的使用应该在所有生成的JavaDoc文档里都反映出来。正如你可能看到的,批注和JavaDoc标记是互补的。@Inherited的意思是,当另外一个类用类来扩展批注时,批注应该是可继承的;在默认情况下,批注是不能被继承的。 详细——http://muchong.com/fanwen/442/60072.html
时间: 2024-10-09 23:16:35