一.Annotation
注解的基本结构就是一个@加字符,可以放在需要修饰的类、方法、变量和参数等元素前面。
Annotation并不直接影响代码的语义,但是他可以被看做是程序的工具或者类库。它会反过来对正在运行的程序语义有所影响。
Annotation可以从源文件、class文件或者在运行时通过反射机制多种方式被读取。
Java中有五个元注解 (即作用在其它注解的标准注解):@Retention、@Documented、@Target、@Inherited、@Repeatable。
-
@Retention:决定这个注解的存活时间;(这里注意下!!)
-
@Documented:被该注解修饰的类可以被javadoc工具提取成文档;
-
@Target:表明该注解可以修饰哪些元素;
-
@Inherited:被该注解修饰的注解有继承性;
-
@Repeatable:表明该注解可以多次应用修饰同一个元素。
这里重点了解下@Target和@Retention设置的值:
1.@Target
// @Target使用ElementType值
public enum ElementType {
TYPE, // 类、接口(包括注解类型)或枚举声明
FIELD, // 变量声明(包括枚举常量)
METHOD, // 方法声明
PARAMETER, // 参数声明
CONSTRUCTOR, // 构造方法声明
LOCAL_VARIABLE, // 局部变量声明
ANNOTATION_TYPE, // 注解类型声明
PACKAGE // 包声明
}
2.@Retention
//