Java批注的发明起因及代码应用实例(2)
2008-02-04 13:32
661 查看
前接: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数组,如果你想要将批注限制为一系列语言元素的话。
你应该注意到的第一件事是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数组,如果你想要将批注限制为一系列语言元素的话。
相关文章推荐
- Java批注的发明起因及代码应用实例
- Java批注的发明起因及代码应用实例(1)
- Java批注的发明起因及代码应用实例
- KETTLE“设置变量“、”变量赋值”"和“自己定义JAVA代码”的实例应用(kettle动态excel文件名需要重点参考看1.1.4)
- Kettle变量和自定义java代码的实例应用
- JAVA应用系统工具快捷托盘实例代码
- JNI中如何在本地代码中生成和操作Java的对象和字符串,并编写应用实例
- JAVA发送HTTP请求,返回HTTP响应内容,应用及实例代码
- Kettle变量和自定义java代码的实例应用
- java正则表达式应用的实例代码
- java代码块知识详解及应用实例
- Kettle变量和自己定义java代码的实例应用
- 一个简单的遗传算法的应用实例(java代码)
- java判断回文数代码实例
- 深入体验JavaWeg开发内幕——使用传统自定义标签的实例应用
- Java排序查找算法――二分法与递归的应用实例
- java代码实例 使用switch实现简易的计算器(实现加减乘除)
- java读取某个文件夹下的所有文件实例代码
- SAS9-IT技术应用-通过JAVA访问SAS实例
- webuploader在springMVC+jquery+Java开发环境下的大文件分片上传的实例代码