14.Annotation(注释)

本章要点

  • Annotation的概念和作用
  • @Override注释的功能和用法
  • @Deprecated注释的功能和用法
  • @SuppressWarning注释的功能和用法
  • 自定义注释
  • 提取注释信息
  • @Retention注释的功能和用法
  • @Target注释的功能和用法
  • @Documeted注释的功能和用法
  • @INherited注释的功能和用法
  • 使用APT工具

从JDK5.0开始,java增加了对元数据(MEtaData)的支持,也就是Annotation,这种Annotation与java第3章所介绍的注释有一定区别,也有一定的联系。本章所介绍的Annotation,其实是代码里的特殊标记这些标记可以在编译,类加载运行时被读取,并执行相应的处理。通过使用Annotation,程序开发人员可以在不改变原有逻辑的情况下,在源文件嵌入一些补充的信息。代码分析工具,开发工具和部署工具可以通过这些补充信息进行验证或者进行部署。

Annotation提供了一条为程序元素设置元数据的方法,从某些方面来看,Annotation就像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被存储在Annotation的“name=value”对中。

Annotation能被用来为程序元素(类,方法,成员变量等)设置元数据。值得指出的是:Annotation不能影响程序代码的执行,无论增加,删除Annotation,代码都始终如一地执行。如果希望让程序中的Annotation能在运行时起一定的作用,只有通过某种配套的工具对Annotation中的信息进行访问和处理,访问和处理Annotation的工具统称APT。

14.1 基本Annotation

Annotation必须使用工具来处理,工具负责提取Annotation里包含的元数据,工具还会根据这些元数据增加额外的功能。在系统学习新到的Annotation语法之前,先看一下java提供的三个基本Annotation的用法: 使用Annotation时要在其前面增加@符号,并把该Annotation当成一个修饰符使用,用于修饰它支持的程序元素。

三个基本的Annotation如下:

  • @Override
  • @Deprecated
  • @SuppressWarnings

14.1.1 限定重写父类方法:@Override

14.1.2 标记已过时:@Deprecated

14.1.3 抑制编译器警告:@SuppressWarnings

14.2 自定义Annotation

14.2。1 定义Annotation

定义新的Annotation类型使用@interface关键字,它用于定义新的Annotation类型。

根据Annotation是否可以包含成员变量,我们可以把Annotation分为如下两类:

  • 标记Annotation:一个没有定义成员变量的Annotation类型被称为标记。这种Annotation仅使用自身的存在与否来为我们提供信息。
  • 元数据Annotation:那些包含成员变量的Annotation,因为它们可接受更多元数据,所以也被称为元数据Annotation。

14.2.2 提取Annotation的信息

AnnotationElement接口代表程序中可以接受注释的程序元素。

14.3 JDK的元Annotation

14.3.1 使用@Retention

用于指定该Annotation可以保留多长时间。

14.3.2 使用@Target

14.3.3 使用@Documented

14.3.4 使用@Inherited

继承性

14.4 使用APT处理Annotation

使用APT主要目的是简化开发者的工作量。

猜你喜欢

转载自blog.csdn.net/qq_21874145/article/details/81353458
今日推荐