当前位置:文档之家› Java注解

Java注解

注解
可以先把注解当成注释来看,注释就是给类的各个组成部分(包、类名、构造器、属性、方法、方法参数,以及局部变量)添加一些解释。

可以先不去管注解是用来干什么的,就把它当成注释来看。

注解的格式当然不能与注释相同,注解是需要声明的,声明注解与声明一个接口有些相似。

当然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等。

它们都提供了自己的注解类库。

在程序运行时使用反射来获取注解信息。

下面我们来使用反射来获取注解信息。

相关主题