当前位置: 代码迷 >> 综合 >> java中注解
  详细解决方案

java中注解

热度:7   发布时间:2024-03-06 03:13:59.0

目录

 

注解简介

注解详解


注解简介

(1)

Java 注解用于为 Java 代码提供元数据。

注解本质其实就是一个继承了annotation接口的接口而已(The common interface extended by all annotation types.)。以@SpringBootApplication注解为例,其是这样的:public @interface SpringBootApplication {}。

注解与Java中的类、接口、枚举类所在同一个层次,其所用的修饰符为@interface。

(2)

注解可以在package、class、method、filed等上使用。如我们常使用的“@Controller”(一般用在class)、“@ResponseBody”(一般用在method上)。

注解详解

注解分类

注解名称

作用

备注

内置注解

@Override

检查该方法是否是重写方法。若是发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。

 

@Deprecated

标记过时方法。如果使用该方法,会报编译警告。

 

@SuppressWarnings

指示编译器去忽略注解中声明的警告。

 

@SafeVarargs

忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。

 

@FunctionalInterface

标识一个匿名函数或函数式接口。

 

@Repeatable

标识某注解可以在同一个声明上使用多次。

 

元注解

@Retention

标识这个注解的生命周期

元注解其实就是注解自定义的注解

@Documented

标记这些注解是否包含在用户文档中。

@Target

标记这个注解的作用目标

@Inherited

标记这个注解是继承于哪个注解类(默认注解并没有继承于任何子类)

(1)@Target注解

@Target注解用来标记注解的作用目标。其作用目标有以下几种:

ElementType.TYPE:允许被修饰的注解作用在类、接口和枚举上。

ElementType.FIELD:允许作用在属性字段上。

ElementType.METHOD:允许作用在方法上。

ElementType.PARAMETER:允许作用在方法参数上。

ElementType.CONSTRUCTOR:允许作用在构造器上。

ElementType.LOCAL_VARIABLE:允许作用在本地局部变量上。

ElementType.ANNOTATION_TYPE:允许作用在注解上。

ElementType.PACKAGE:允许作用在包上。

如果想让自己的注解对什么生效,就使用ElementType中的指定类型即可。

(2)Retention注解

@Retention注解用来标记注解的生命周期,其生命周期有下列几种:

RetentionPolicy.SOURCE:当前注解编译期可见,不会写入 class 文件。

RetentionPolicy.CLASS:类加载阶段丢弃,会写入 class 文件。

RetentionPolicy.RUNTIME:永久保存,可以反射获取。

(3)@Documented注解

@Documented注解标记该注解是否会出现在javadoc文档中。若是没有定义@Documented注解,则注解不会出现在javadoc中。

(4)@Inherited注解

@Inherited注解修饰一个父类时,如果其子类没有被其他注解修饰,则表示其子类继承了其注解。