# 注解概述

# 区分注解与注释

  1. 注解:给计算机说明程序
  2. 注释:给程序员说明程序

# 注解的功能

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

# 文档注解

  1. /** + 回车 :生成文档注释
  2. @since 1.5 :jdk1.5 以后才能使用
  3. @version 1.0 :版本号为 1.0
  4. author xxx :作者为 xxx
  5. param a 整数 :参数 a 式整数
  6. @return 两数之和 :返回值为两数之和

# 生成文档注释

  1. cmd: javadoc *.java
  2. index,html ——> 文档注释

# 注解预设

  1. @Override :检测方法是否是继承父类或者父接口
  2. @Decrecated :将该注解标记的内容已过时
  3. @supperssWarnings("all") :取消编译器的警告

# 自定义注释

元注解
public @interface 注解名称 {
    属性列表;
}

本质:一个继承了 Annotation 接口的接口

# 注解的属性

# 属性

接口中可以定义的抽象成员方法

# 要求

# 返回值

基本数据类型,String、枚举、注解、数据

// 枚举
public enmu Num {
    n1,n2;
}
Num.n1

# 属性

定义了属性,使用时需要给属性赋值

public @interface MyAnno {
    int age();
    String name default "baozi";	//default 为默认值
}
@MyAnno(age = 12, name = "baozi");
@MyAnno(age = 12)

如果只有一个属性 value ,则可以省略 xxx = ,直接定义值

public @interface MyAnno {
    int value();
}
@MyAnno(12);

数组赋值用 {},如果只有一个值可以直接省略

# 元注解

# 概述

用于描述注解的注解

# 分类

# @Target

ElementType 取值:

  1. TYPE :类
  2. METHOD :方法
  3. FIELD :成员变量

# @Retention

  1. Retention(RetentionPolicy.RUNTIME)

注解会保留到 class 字节码文件,会被 jvm 虚拟机读取

# @Documented

注解是否会被抽取到 api 文档

# @Inherited

注解是否被子类继承

# 解析注解

# 目的

获取注解中

# 使用

  1. 获取主定义的位置的对象
  2. 获取指定的注解 getAnnotation(Class)
  3. 调用注解中的抽象方法获取配置的属性值
更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

Baozi 微信支付

微信支付

Baozi 支付宝

支付宝

Baozi 微信

微信