欢迎光临散文网 会员登陆 & 注册

后端 | Java | 注解

2023-06-23 23:48 作者:朵宝特工007  | 我要投稿

笔记来源:Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程

一、注解(Annotation)

  • 就是Java代码中的特殊标记,比如@Override、@Test,作用是:让其他程序根据注解信息来决定怎么执行该程序。

  • 注解可以用在类上、构造器上、方法上、成员变量上、参数上等位置处。

  • 注解的原理:注解本质是一个接口,Java中所有注解都是继承了Annotation接口的。

  • @注解(...):其实就是一个实现类对象,实现了该注解以及Annotation接口。


二、自定义注解

  • 自己定义的注解。

  • 特殊属性名:value

    • 如果注解中只有一个value属性,使用注解时,value名称可以不写。


三、元注解

  • 元注解是指修饰注解的注解

  • 常见的元注解:

    • @Target:@Target(ElementType.Type),声明当前被修饰的注解只能在哪些位置使用。

      • TYPE:类、接口。

      • FIELD:成员变量。

      • METHOD:成员方法。

      • PARAMETER:方法参数。

      • CONSTRUCTOR:构造器。

      • LOCAL_VARIABLE:局部变量。

    • @Retention:@Retention(RetentionPolicy.RUNTIME),声明注解的保留周期。

      • SOURCE:只作用在源码阶段,字节码文件中不存在。

      • CLASS(默认值):保留到字节码文件阶段,运行阶段不存在。

      • RUNTIME(开发常用):一直保留到运行阶段。


四、注解的解析

  • 就是判断类上、方法上、成员变量上是否存在注解,并把注解里的内容给解析出来。

  • 要解析谁上面的注解,就应该先拿到谁;比如要解析类上的注解,则应该先获取该类的Class对象,再通过Class对象解析其上面的注解。

  • Class、Method、Field、Constructor都实现了AnnotatedElement接口,他们都拥有解析注解的能力。

  • AnnotatedElement接口提供的方法:

    • public Annotation[] getDeclaredAnnotations():获取当前对象上面的注解。

    • public T getDeclaredAnnotation(Class<T> annotationClass):获取指定的注解对象。

    • public boolean isAnnotationPresent(Class<Annotation> annotation):判断当前对象上是否存在某个注解。


后端 | Java | 注解的评论 (共 条)

分享到微博请遵守国家法律