栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

元注解(注解的注解)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

元注解(注解的注解)

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{

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/691625.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号