@Inherited // 子类可以继承父类的注解
@Retention(RetentionPolicy.CLASS) // 注解保留位置
public enum RetentionPolicy {
SOURCE, // 注解仅仅保留在源码中,不存在.class文件中
CLASS, // .class文件中存在
RUNTIME; // 在类加载器转换.class 为字节码后 运行时期存在
private RetentionPolicy() {
}
}
@Target(ElementType.ANNOTATION_TYPE) // 注解作用位置
public enum ElementType {
TYPE, //作用于类、接口、枚举、注解
FIELD, //作用于字段、枚举中的常量
METHOD, //方法
PARAMETER, //参数
CONSTRUCTOR, //构造方法
LOCAL_VARIABLE, // 局部变量
ANNOTATION_TYPE, //注解
PACKAGE, //包
TYPE_PARAMETER, // 类型
TYPE_USE; // 类型的注解,如泛型,string类型这些
}
后两个@since 1.8 也就是java1.8后加入的
@Documented //Javadoc工具会将此注解标记元素的注解信息包含在javadoc中。默认,注解信息不会包含在Javadoc中