Java注解

注解

  • 概述

    • 就是 Java 提供了一种元程序中的元素,关联任何信息和任何元数据(metadata)的途径和方法
    • Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的 Annotion 对象,然后通过 Annotion 对象来获取注解里面的元数据
  • 元数据

    • 元数据:描述数据的结构信息
    • 被用来生成其它的文件,或在运行时获取运行代码的描述信息
    • 作用:
    • 生成文档
    • 跟踪代码依赖性,实现替代配置文件功能
    • 在编译时进行格式检查
  • 元注解

  • 负责注解其他注解
    • 1.@Target:注解使用范围
    • 2.@Retention:描述注解的生命周期
    • 3.@Documented:表明会否被文档化
    • 4.@Inherited:表明继承

自定义注解

  • 声明格式

    • public @interface 注解名 {定义体}
  • 注解参数

    • 注解里面的每一个方法实际上就是声明了一个配置参数
    • 修饰符
      • 只能用 public 或默认(default)这两个访问权修饰
    • 参数类型
      • 基本数据类型(int,float,boolean,byte,double,char,long,short)
      • String 类型
      • Class 类型
      • enum 类型
      • Annotation 类型
      • 以上所有类型的数组
    • 方法参数
      • 不允许有参数
    • 默认值
      • 可以有默认值,用default来声明

注解处理器

  • 概述
    • Java 使用 Annotation 接口来代表程序的注解,该接口是所有 Annotation 类型的父接口
    • Java 在 java.lang.reflect 包下新增了 AnnotatedElement 接口,该接口代表程序中可以接受注解的程序元素,该接口主要有如下几个实现类:
      • Class:类定义
      • Constructor:构造器定义
      • Field:累的成员变量定义
      • Method:类的方法定义
      • Package:类的包定义
    • java.lang.reflect 包扩充了读取运行时 Annotation 信息的能力。当一个 Annotation 类型被定义为运行时的 Annotation 后,该注解才能是运行时可见,
    • 当 class 文件被装载时被保存在 class文件中的 Annotation 才会被虚拟机读取
    • 程序通过反射获取了某个类的 AnnotatedElement 对象之后,程序就可以调用该对象的如下四个个方法来访问 Annotation 信息
      • 方法 1: (T extends Annotation T) getAnnotation(Class annotationClass): 返回指定类型的注解
      • 方法 2:Annotation[] getAnnotations():返回该程序元素上存在的所有注解
      • 方法 3: boolean is AnnotationPresent( annotationClass):判断是否包含指定类型的注解
      • 方法 4:Annotation[] getDeclaredAnnotations():返回直接存在于此元素上的所有注解,该方法将忽略继承的注解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值