元注解(注解的注解)

元注解(注解的注解),第1张

注解(注解的注解) java元注解

定义注解时,会需要一些元注解

@Retention

表示在什么级别保存该注解信息。可选的参数值在枚举类型 RetentionPolicy 中,包括:

  • RetentionPolicy.SOURCE:指定注解只保留在源文件当中,注解将被编译器丢弃
  • RetentionPolicy.CLASS:指定注解只保留在class文件中,但会被VM丢弃
  • RetentionPolicy.RUNTIME:指定注解可以保留在程序运行期间,VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息
@Retention(value = RetentionPolicy.RUNTIME)
@Target

用来定义你的注解将应用于什么地方(例如是一个方法或者一个域)。可能的值在枚举类 ElemenetType 中,包括:

  • ElementType.TYPE:说明该注解只能被声明在一个类、接口、枚举前。
  • ElementType.FIELD:说明该注解只能被声明在一个类的字段前。
  • ElementType.METHOD:说明该注解只能被声明在一个类的方法前。
  • ElementType.PARAMETER:说明该注解只能被声明在一个方法参数前。
  • ElementType.CONSTRUCTOR:说明该注解只能声明在一个类的构造方法前。
  • ElementType.LOCAL_VARIABLE:说明该注解只能声明在一个局部变量前。
  • ElementType.ANNOTATION_TYPE:说明该注解只能声明在一个注解类型前。
  • ElementType.PACKAGE:说明该注解只能声明在一个包名前。
@Target(value = {ElementType.METHOD,ElementType.TYPE})
@Inherited

表明该注解将会被子类继承

@documented

作用是在生成JavaDoc文档时,该注解也会出现在javaDoc文档中

代码案例
@MyAnnotation
public class Test2 {

}

//@Target定义我们的注解可以用到那些地方
@Target(value = {ElementType.METHOD,ElementType.TYPE})
//@Retention定义我们的注解在什么地方有效
@Retention(value = RetentionPolicy.RUNTIME)
//@documented表示是否将注解生成在JAVAdoc中
@documented
//@Inherited子类可以继承父类的注解
@Inherited
@interface MyAnnotation{

}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5692110.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存