java注解基本定义在java.lang.annotation包下
为java 编程语言注解设施提供类库支持
接口摘要 | |
---|---|
Annotation | 所有 annotation 类型都要扩展的公共接口。 |
枚举摘要 | |
---|---|
ElementType | 程序元素类型。 |
RetentionPolicy | 注释保留策略。 |
异常摘要 | |
---|---|
AnnotationTypeMismatchException | 若某个注释的类型在对该注释进行编译(或序列化)后发生了更改,而程序试图访问该注释的元素时,抛出此异常。 |
IncompleteAnnotationException | 若某个注释在编译(或序列化)后将某个注释类型添加到其类型定义中,而程序试图该注释类型的元素时,抛出此异常。 |
错误摘要 | |
---|---|
AnnotationFormatError | 当注释解析器试图从类文件读取注释并确定注释出现异常时,抛出该错误。 |
注释类型摘要 | |
---|---|
Documented | 指示某一类型的注释将通过 javadoc 和类似的默认工具进行文档化。 |
Inherited | 指示注释类型被自动继承。 |
Retention | 指示注释类型的注释要保留多久。 |
Target | 指示注释类型所适用的程序元素的种类。 |
接口:annotation
定义:所有的annotation类型都要扩展的公共接口,注意: 手动扩展该公共接口的接口不扩展annotation类型,此接口本身也不定义annotation类型
方法:
annotationType() ;返回此annotation注释的类型
equals(Object obj);如果指定的对象在逻辑上等效于此接口的注释类型,则返回true
hashCode();返回此annotation的哈希码
toString();返回此annotation的字符串表示形式
继续自 Enum
定义:程序元素类型,此枚举类型的常量提供了java程序中声明的元素的简单分类,这些常量与Target
元注释一起使用,以指定在什么情况使用注释类型是合法的
常量:
ANNOTATION_TYPE :注释类型声明
CONSTRUCTOR:构造方法声明
FIELD:字段声明(包括枚举常量)
LOCAL_VARIABLE :局部变量声明
METHOD:方法声明
PACKAGE:包声明
PARAMETER:参数声明
TYPE:类,接口或枚举声明
方法:
valueOf(String name);返回带有指定名称的该类型的枚举常量
values();按照声明的顺序返回包含此枚举类型常量的数组
继续自 Enum
定义:注释保留策略,此枚举类型的常量描述保留注释的不同策略,他们与Retention
元注释一起使用,以指定保留多长的注释
常量:
CALSS: 编译器将把注释记录在类文件中,但在运行时VM不需要保留注释
RUNTIME: 编译器将把注释记录在类文件中,在运行时VM将保留注释,因此可以反射性的读取
SOURCE:编译器要丢弃的注释
方法:
valueOf(String name);返回带有指定名称的该类型的指定常量
values();按照声明的顺序返回包含此枚举类型常量的数组
若某个注释的类型在对该注释进行编译或序列化后发生了更改,而程序试图访问该注释的元素时,抛出此异常
方法:
element();返回类型不正确的元素的method对象
foundType();返回类型不正确的元素找到的数据类型
若某个注释在编译或序列化之后,将某个注释类型添加到其类型定义中,而程序试图解析该注释类型的元素时抛出此异常,如果新元素有默认值,则不抛出此异常
方法:
annotationType();返回带有缺少元素的注释类型的Class对象
elementName();返回缺少元素的名称
AnnotationFormatError
当注释解析器试图从类文件读取注释并确定注释出现异常时,抛出此错误
指示某一类型的注释将通过javadoc 和类似的默认工具进行文档化.应使用此类型来这些类型文档声明,其注释会影响由其客户端注释的元素的使用,如果类型声明是用Documented 来注释的,则其注释将成为注释元素的公共api的一部分
指示注释类型被自动继承,如果在注释类型声明中存在Inherited 元注释,并且用户在某一类声明中查询该注释类型,同时该类声明中没有此类型的注释,则将在该类的超类自动查询该注释类型,此过程会重复进行,直到找到该类型的注释或到达该类层次的顶层为止,如果没有超类具有该类型的注释,则查询将指示当前类没有这样的注释
注意,如果使用注释类型注释类以外的任何事物,此元注释类型都是无效的,,还有注意,此元注释,仅促成从超类继承注释,对以实现接口的注释无效
指示注释类型要注释多久,如果注释中不存在Retention注释,则保留策略默认为RetentionPolicy.CLASS
只有元注释类型直接用于注释时,Target元注释才有效,如果元注释类型用作另一种注释类型的成员,则无效
指示注释类型所适用的元素程序元素的种类,如果注释类型声明中不存在Target元注释,则声明的类型可以用在任一程序元素上,如果存在这样的元注释,则编译器强制实施指定的使用限制