@Target 它指明了它所修饰的注解使用的范围 如果自定义的注解不含有@Target元注解修饰,那么默认可以是在(除类型参数之外的)任何项之上使用, 若有@Target元注解修饰那么根据Value(ElementType枚举常量)的指定的目标进行规定。
ElementType.TYPE 类、接口(包括注解类型)或枚举
ElementType.FIELD 字段(包括枚举常量)
ElementType.METHOD 方法
ElementType.PARAMETER 参数
ElementType.CONSTRUCTOR 构造函数
ElementType.LOCAL_VARIABLE 局部变量
ElementType.ANNOTATION_TYPE 注解类型
ElementType.ANNOTATION_TYPE 注解类型
ElementType.PACKAGE 包装
ElementType.TYPE_PARAMETER 类型参数 类型参数即Map<String,Integer>中的String和Integer这里是作为类型(@since 1.8)
ElementType.TYPE_USE 使用类型 对应于 JLS 4.11 中的 15 个类型上下文,以及两个声明上下文:类型(包括注解类型)和类型参数。(@since 1.8)
@Retention