元注解的做用就是负责注解其余注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型做说明。Java5.0定义的元注解:java
用于说明该注解的做用域.基本上囊括了全部地方:ElementType可选数组
该元注解用于声明注解的生命周期:RetentionPlicy 可选函数
标注性注解,代表该注解是否容许被子注解继承ui
生成javadoc时会包含该注解spa
使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口,由编译程序自动完成其余细节。在定义注解时,不能继承其余的注解或接口。@interface用来声明一个注解,其中的每个方法其实是声明了一个配置参数。方法的名称就是参数的名称,返回值类型就是参数的类型(返回值类型只能是基本类型、Class、String、enum)。能够经过default来声明参数的默认值。.net
public @interface 注解名 {定义体}code
例如:继承
/** * 水果颜色注解 * @author peida * */ @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface FruitColor { /** * 颜色枚举 * @author peida * */ public enum Color{ BULE,RED,GREEN}; /** * 颜色属性 * @return */ Color fruitColor() default Color.GREEN; }
概念:经过反射获取类,函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑接口