Java注解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注解
可以先把注解当成注释来看,注释就是给类的各个组成部分(包、类名、构造器、属性、方法、方法参数,以及局部变量)添加一些解释。
可以先不去管注解是用来干什么的,就把它当成注释来看。注解的格式当然不能与注释相同,注解是需要声明的,声明注解与声明一个接口有些相似。当然Java也有一些内置注解,例如:@Override就是内置注解。
1声明注解
声明注解与声明一个接口相似,它需要使用@interface。一个注解默认为Annotation的
注解还可以带有成员,没有成员的注解叫做标记注解。成员的类型只能是基本类型、枚举类型)、String、基本类型数组、String[],以及注解和注解数组类型。
其中String表示成员的类型,value()表示成员名称。其中圆括号不能没有,也不能在圆
括号内放参数,它不是一个方法,只是一个成员变量。
注解可以有多个成员,但如果只有一个成员,那么成员名必须为value。这时在设置成
Java还提供了一些元注解,用来控制注解,例如@Retention和@Target:
●@Target:ElementType类型(枚举类型),表示当前注解可以标记什么东西,可选
值为:
TYPE:可以标记类、接口、注解类、Enum。
FIELD:可以标记属性。
METHOD:可以标记就去。
PARAMETER:可以标记参数。
CONSTRUCTOR:可以标记构造器。
LOCAL_VARIABLE:可以标记局部变量。
ANNOTATION_TYPE:可以标记注解类声明。
PACKAGE:可以标记包。
●@Retention:RetentionPolicy类型(枚举类型),表示注解的可保留期限。可选值为:
SOURCE:只在源代码中存在,编译后的字节码文件中不保留注解信息。
CLASS:保留到字节码文件中,但类加载器不会加载注解信息到JVM。
RUNTIME:保留到字节码文件中,并在目标类被类加载器加载时,同时加载注解信息到JVM,可以通过反射来获取注解信息。
2访问注解
很多第三方程序或工具都使用了注解完成特殊的任务,例如Spring、Struts等。它们都提供了自己的注解类库。在程序运行时使用反射来获取注解信息。下面我们来使用反射来获取注解信息。