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源码

目录
相关文章
|
4天前
|
安全 Java 编译器
Java其他: 什么是Java中的注解(Annotation)?
Java其他: 什么是Java中的注解(Annotation)?
48 0
|
4天前
|
Java
[Java 基础] Java修饰符
[Java 基础] Java修饰符
|
9月前
|
Java
Java -- 元注解
@Target(ElementType.ANNOTATION_TYPE):指定该注解可以用于注解类、接口或枚举类型。 @Retention(RetentionPolicy.RUNTIME):指定该注解的保留策略,即在程序运行时也可以访问到该注解。 @Documented:指定该注解应该被包含在 Java 文档中。 @Inherited:指定该注解可以继承自父类。
34 0
|
11月前
|
Java
[java]java构造器
[java]java构造器
57 0
|
12月前
|
Java 编译器 测试技术
Java-Java5.0注解解读
Java-Java5.0注解解读
41 0
|
Java 编译器
强哥说Java--枚举类
强哥说Java--枚举类
58 0
|
Java
Java:Java 8 函数式接口FunctionalInterface
Java:Java 8 函数式接口FunctionalInterface
82 0
|
存储 Java Go
java之方法的使用
java之方法的使用
79 0
java之方法的使用
Java元注解
元注解包括:@Documented、@Target、@Retention、@Inherited、@Repeatable和@Native。
Java元注解
|
Java 编译器
强哥说Java--Java的抽象类
强哥说Java--Java的抽象类
70 0