java元注解

简介: java注解只是一种不会被编译器忽略的注释。本身对代码逻辑没有任何影响(可以用来判断是否存在,能读取内容信息),其使用效果完全由使用工具决定。

java注解只是一种不会被编译器忽略的注释。本身对代码逻辑没有任何影响(可以用来判断是否存在,能读取内容信息),其使用效果完全由使用工具决定。

@Target表示注解作用范围,常用值包括以下五个,具体查看ElementType

  • TYPE:类、接口(包括注解)、枚举
  • FIELD:字段声明(包括枚举常量)
  • METHOD:方法声明
  • CONSTRUCTOR:构造器声明
  • PARAMETER:形式参数声明

@Retention表示注解生命周期,值为RetentionPolicy枚举

  • SOURCE:注解仅在源码存活,编译时消失。如@Override和@SuppressWarning,lombok的@Data,@Builder。
  • CLASS:注解在字节码期存活,jvm加载class文件时消失(不标注@Retention时为默认值)
  • RUNTIME:注解在运行期仍存活。大多数注解需要指定此生命周期(如spring的@SpringBootApplication,@Component等)

@Documented是javadoc等工具生成文档后,文档中注解所在位置是否显示注解的开关。如下

对比

@Inherited表示继承。如果注解声明上存在该元注解,并且用户试图在类上(仅限于类,不包括接口等)获取该注解,而类声明没有此类型的注解,将自动查询类的超类并重复此过程直到找到或达到类层次结构顶部。

@Repeatable(since(自从) jdk1.8)表示其修饰的注解是可重复的。@Repeatable的值是另一个注解,可以通过这个另一个注解的值来包含这个可重复的注解。如下

后续可以获取标注了多个@Value的Method对象,Method对象包含的注解信息中不是两个@Value而是一个@Values,如下

应用场景

@Native无需背诵,了解即可

@Native 注解修饰定义常量值的字段,表示它可以被本地代码引用。@Native 常被代码生成工具使用。

参考:java源码

目录
相关文章
|
2月前
|
Java 编译器 程序员
Java注解,元注解,自定义注解的使用
本文讲解了Java中注解的概念和作用,包括基本注解的用法(@Override, @Deprecated, @SuppressWarnings, @SafeVarargs, @FunctionalInterface),Java提供的元注解(@Retention, @Target, @Documented, @Inherited),以及如何自定义注解并通过反射获取注解信息。
Java注解,元注解,自定义注解的使用
|
Java
Java -- 元注解
@Target(ElementType.ANNOTATION_TYPE):指定该注解可以用于注解类、接口或枚举类型。 @Retention(RetentionPolicy.RUNTIME):指定该注解的保留策略,即在程序运行时也可以访问到该注解。 @Documented:指定该注解应该被包含在 Java 文档中。 @Inherited:指定该注解可以继承自父类。
58 0
|
Java 容器
Java-元注解
Java-元注解
|
Java 编译器
JAVA-元注解和注解
JAVA-元注解和注解
Java注解--元注解
元注解的个人总结
|
XML Java 编译器
java 元数据 和 元注解
java 元数据 和 元注解。帮你看懂源码。
134 0
java 元数据 和 元注解
|
Dubbo Java 编译器
一文搞定java元注解:Target、Retention、Documented、Inherited、Repeatable(JDK1.8新增)
一文搞定java元注解:Target、Retention、Documented、Inherited、Repeatable(JDK1.8新增)
557 0
一文搞定java元注解:Target、Retention、Documented、Inherited、Repeatable(JDK1.8新增)
Java元注解
元注解包括:@Documented、@Target、@Retention、@Inherited、@Repeatable和@Native。
Java元注解
|
XML Java 数据格式
Java之注解(初识+元注解+自定义)
注解 Annotation(注释 注解) 注释 单行注释 // 多行注释 /* */ 文档注释 /** */ 注解 1.注解的写法 @XXX [(一些信息)] 2.注解放置在哪里 类的上面 属性上面 方法上面 构造方法上面 参数前面 3.注解的作用 1.用来充当注释的作用(仅仅是一个文字的说明) @Deprecated 2.用来做代码的检测(验证) @Override *3.可以携带一些信息(内容) 文件.properties .xml 注解 4.Java中有一些人家写好的注解供我们使用 @Deprecated 用来说明方法
119 0
|
Java API
【Java 注解】自定义注解 ( 元注解 )(二)
【Java 注解】自定义注解 ( 元注解 )(二)
114 0
【Java 注解】自定义注解 ( 元注解 )(二)