J2SE 批注
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了J2SE 批注相关的知识,希望对你有一定的参考价值。
@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
以上是关于J2SE 批注的主要内容,如果未能解决你的问题,请参考以下文章
@suppressWarnings("unchecked")在java中的作用