JDK内置的annotaion
1. @Target
表示该注解用于什么地方,可能的 ElemenetType 参数包括: ElemenetType.CONSTRUCTOR 构造器声明 ElemenetType.FIELD 域声明(包括 enum 实例) ElemenetType.LOCAL_VARIABLE 局部变量声明 ElemenetType.METHOD 方法声明 ElemenetType.PACKAGE 包声明 ElemenetType.PARAMETER 参数声明 ElemenetType.TYPE 类,接口(包括注解类型)或enum声明
2. @Retention
表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:
- SOURCE:信息只会保留在程序源码里,源码如果经过了编译之后,Annotation的数据就会消失,并不会保留在编译好的.class文件里面。
- ClASS:信息保留在程序源码里,同时也会保留在编译好的.class文件里面,在执行的时候,并不会把这一些信息加载到虚拟机(JVM)中去。系统默认值是CLASS。
- RUNTIME:表示在源码、编译好的.class文件中保留信息,在执行的时候会把这一些信息加载到JVM中去的。
举一个例子,如@Override里面的Retention设为SOURCE,编译成功了就不要这一些检查的信息;@Deprecated里面的 Retention设为RUNTIME,表示除了在编译时会警告我们使用了哪个被Deprecated的方法,在执行的时候也可以查出该方法是否被 Deprecated。
3. @Documented
@Documented的目的就是让这一个Annotation类型的信息能够显示在javaAPI说明文档上;没有添加的话,使用javadoc生成API文档的时候就会找不到这一个类型生成的信息。
4. @Inherited
如果需要把Annotation的数据继承给子类,那么就会用到@Inherited这一个Annotation类型. 综上所述,见例子就明白了。
- @Target(ElementType.METHOD)
-
@Retention(RetentionPolicy.RUNTIME)
-
@Documented
-
@Inherited
-
public @interface VisitorRole {
- String value();
- }
自定义annotaion参见http://download.oracle.com/javase/1.5.0/docs/guide/language/annotations.html
分享到:
相关推荐
个人收集的相关Java Annotation的资源资料内容。
JDK5.0 - Java Annotation 介绍 (ppt格式)
JAVA Annotation学习示例 的一个简单示例 有源码 也有相关博客说明
java annotation 手册.doc,java annotation 手册.doc,java annotation 手册.doc
Java Annotation注解技术
Java Annotation的讲解和例子~~~
本文针对java初学者或者annotation初次使用者全面地说明了annotation的使用方法、定义方式、分类。初学者可以通过以上的说明制作简单的annotation程序,但是对于一些高级的annotation应用(例如使用自定义annotation...
Java Annotation详解 Java Annotation详解 Java Annotation详解
struts 拦截器,扩展,以及java annotation 这个是我学习所用,放在此处,作为中转。
JavaAnnotation必须掌握的特性Java开发Java经验技巧共6页.pdf.zip
Java Annotation入门,本文初步告诉你怎么使用java anotatin
NULL 博文链接:https://xing-kenny.iteye.com/blog/1338865
如果你想知道java annotation是什么?你可以看看
java annotation 从JDK5.0后提供的功能。里面包含的实例,我是为了学习这个,所以放到这个上面作为中转。从别人博客里面摘取,博客地址里面附有。
javaAnnotation.pdf
Java Annotation学习整理
JavaAnnotation实例.docx