元注解:负责注解其他注解,java5提供的4个meta-annotation元注解

@Target

  规定注解修饰的范围

  1. ElementType.CONSTRUCTOR:构造器声明
  2. ElementType.FIELD:成员变量、对象、属性(包括enum实例)
  3. ElementType.LOCAL_VARIABLE:局部变量声明
  4. ElementType.METHOD:方法声明
  5. ElementType.PACKAGE:包声明
  6. ElementType.PARAMETER:参数声明
  7. ElementType.TYPE:类、接口(包括注解类型)或enum声明

@Retention

  对Annotation的“生命周期”限制:某些Annotation仅出现在源代码中,而被编译器丢弃;而另一些却被编译在class文件中;编译在class文件中的Annotation可能会被虚拟机忽略,而另一些在class被装载时将被读取。

  1. RetentionPolicy.SOURCE:在源文件中有效
  2. RetentionPolicy.CLASS:在class文件中有效
  3. RetentionPolicy.RUNTIME:在运行时有效

@Documented

  用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。

@Inherited

  是一个标记注解,@Inherited阐述了某个被标注的类型是被继承的。如果一个使用了@Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类。

posted on 2016-10-09 15:53  向着大牛奋斗  阅读(162)  评论(0编辑  收藏  举报