Java批注的发明起因及代码应用实例(2)

来源:互联网 发布:淘宝怎么搜资源 编辑:程序博客网 时间:2024/04/29 06:42

前接:http://blog.csdn.net/fatfoxz/archive/2008/02/03/2079661.aspx

  你应该注意到的第一件事是Java使用了它自己内置的一些批注来定批注:@Retention和@Target。@Retention用来定义通过设置RetentionPolicy的值批注能够在构建-运行过程中存留多久。这里我们使用了RUNTIME。这意味着我们定义的批注将会在运行期间被保留在代码里。RetentionPolicy.SOURCE将被用于一个我们希望被编译器使用然后抛弃的批注。RetentionPolicy.CLASS让它们保留在生成的类文件里,但是能够在运行期间被Java虚拟机(JVM)访问到。

  在默认情况下,你可以在代码里任何地方都应用批注。@Target批注让你能够将它限制在代码的特定部分里。在本文里,我们把目标瞄准了 ElementType.METHOD,这意味着它只能够与方法关联在一起。其他ElementType有CONSTRUCTOR、FIELD、LOCAL_VARIABLE、PACKAGE、PARAMETER和TYPE,每个都能够把批注限制到该种类型的Java语言元素,所以例如,设置TYPE 将只允许批注为定义过的这种类型,比如:

    @OurAnnotation

    public class OurAnnotatedClass { ……

  值得注意的是,@Target批注能够接受单个ElementType或者一个ElementType数组,如果你想要将批注限制为一系列语言元素的话。

原创粉丝点击