注解的使用

注解

注解的理解

1、注解(Annotation)也被称为元数据(Metadata),用于修饰解释包、类、方法、属性、构造器、局部变量等数据信息

2、和注释一样,注解不影响程序的逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息

3、在javase中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等等。在javaEE中注解占据了重要角色,例如用来配置应用程序的任何切面,代替javaEE旧版中所遗留的繁冗代码和XML配置等。

基本的Annotation介绍

使用Annotation时需要在其前面增加@符号,并把该Annotation 当成一个修饰符使用。

三个基本的Annotation:

1、@Override:限定某个方法,是重写父类方法,该注解只能用于方法;

如果给某个方法写了@Override注解,则编译器会检查此方法是否重写了父类的该方法,如果发现父类的没有该方法,不构成重写,则编译不通过。即语法的校验。

2、@Deprecated:用于表示某个程序元素(类,方法等),已过时;

@Deprecated修饰某个元素,表示该元素已经过时 。可以用于版本升级时的过度使用。

3、@SuppressWarnings:抑制编译器警告,通常放在类和方法中,作用域为修饰的类和方法的范围。可取消全部的警告,也可添加部分警告

注解的使用_第1张图片
注解的使用_第2张图片
常用的警告:
注解的使用_第3张图片
其他的参数可查看文章:

SuppressWarning中的属性介绍及属性说明

其他注解介绍

  • @interface:不是接口,而是定义一个注解类,在jdk5之后加入的。

注解的使用_第4张图片

  • @Target: 是修饰注解的注解,即元注解

四种元注解

介绍:元注解是修饰注解的注解

作用:本身作用不大,但我们要知道这些元注解是干什么的,方便我们阅读源码。

@Retention:保留指定注解的作用范围

说明:只能用于修饰一个Annotation定义,用于指定该Annotation可以保留多长时间,@Retation包含一个RetentionPolicy类型的成员变量,使用@Rentention时必须为该value 成员变量指定值

  • RententionPolicy.SOURCE:编译器使用后,直接丢弃这种策略的注释

  • RententionPolicy.CLASS: 编译器将把注解记录在class文件中,当运行Java程序时,JVM不会保留注解。这是默认值

  • RententionPolicy.RUNTIME: 编译器将把注解记录在class文件中,当运行java程序时,JVM会保留注解,程序可以通过反射获取该注解

注解的使用_第5张图片

@Target

用于修饰Annotation定义,用于指定被修饰的Annotation能用于修饰哪些程序元素。@Target也包含一个名为 value的成员变量

  • CONSTRUCTOR: 构造器

  • TYPE: 类

  • METHOD: 方法

  • PACKAGE: 包

  • FIELD:字段/属性

  • LOCAL_VARIABLE: 局部变量

  • PARAMETER: 参数

@Documented

用于指定被该元Annotation修饰的Annotation类将被javadoc工具提取成文档,即在生成文档时,可以看到被@Documented修饰的注解

说明:定义为Documented的注解必须设置Retention的值为RUNTIME

注解的使用_第6张图片

@Inherited(继承)

被此注解修饰的 Annotation 将具有继承性,如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解

说明:实际应用中,使用较少,了解即可。

你可能感兴趣的:(java)