JAVA框架学习(一)2021.06.10(注解解析)

221 阅读2分钟

注解

一、注解的概述:

注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

二、注解的关键元素:

从注解的源码分析,注解是由元注解、@interface以及方法形式的属性构成,其中元注解主要包括@Target、@Retention、@Document、@Inherited

  • 格式:

        元注解
     public @interface 注解名称{}
    
  • 本质:注解本质就是一个接口,该接口默认继承Annotation接口。

  • 属性:接口中的抽象方法

注解功能
@Target限制注解,限制注解使用的地方(属性、方法、类);如果一个注解没有@Target描述,则该 注解可以修饰任何类型的元素;如果有@Target修饰,则该注解就只能用于被@Target修饰的地方,属性的填写参考 ElementType 枚举类
@Retention限制注解的生命周期,属性的填写参考 RetentionPolicy 枚举类(里面只有三个,SOURCE:该注解无效、CLASS:程序在编译时会使用该注解,在运行是不会使用、RUNTIME:程序在编译以及运行时,都会使用注解)
@Document默认情况下,javadoc 不包含注解的解释;如果现在javadoc文档中也包含对注解的说明,则需要使用@Document标注
@Inherited默认情况下子类不会继承父类的注解。除非父类的注解里面写有该元注解,则子类也会享有父类的注解(里面写有该元注解)

三、注解的作用:

  1. 编写文档:通过代码里标识的注解生成文档【生成文档doc文档】
  2. 代码分析:通过代码里标识的注解对代码进行分析【使用反射】
  3. 编译检查:通过代码里标识的注解让编请器能够实现基本的编译检查【Override】

四、JDK预定义的部分注解:

  • @Override:检测该注解标注的方法是否继承自父类(接口)的。
  • @Deprecated:该注解标注的内容,表示已过时。
  • @SuppressWarnings :压制警告。(一般传递参数 all @SuppressWarnings(“all”)

五、注解分类

注解根据注解参数分为三类:

  • 标记注解: 没有参数的注解,仅用自身的存在与否为程序提供信息,如@Override注解,该注解没有参数,用于表示当前方法为重写方法。
  • 单值注解:只有一个参数的注解,如果该参数的名字为value,那么可以省略参数名,如 @SuppressWarnings(value = "all"),可以简写为@SuppressWarnings("all")。
  • 完整注解:有多个参数的注解

六、自定义注解

参照:www.cnblogs.com/ziph/p/1305… blog.csdn.net/MoastAll/ar… www.jianshu.com/p/efa3533e6… 了解如何写注解可以更深刻的认识到注解作用