Jakartase注解-附

42次阅读

共计 1590 个字符,预计需要花费 4 分钟才能阅读完成。

一、注解是什么

  • classinterface 一样,注解也属于一种类型
  • 可以理解为一张便标签

二、注解的定义

  • 注解通过 @interface关键字进行定义。

       public @interface a_Annotation {}
    

三、注解的应用、以及元注解的作用

  • 3.1、这是没有产生作用的自定义注解。

    @aAnnotation
    public class Annotation_Text {}
  • 3.2、怎么产生作用?

    • 元注解 注解自定义注解

四、元注解

4.1、元注解的定义

  • 元注解是一种 基本注解,但是它能够应用到其它的注解上面。

4.2、元注解的作用

  • 给其他普通的 注解 (标签) 进行解释说明的。

4.3、元注解的分类

@Retention

  • 作用:应用到一个注解上,解释说明这个注解的的存活时间。
  • 取值:

    • RetentionPolicy.SOURCE:注解只在源码阶段保留,在编译器进行编译时它将被丢弃忽视
    • RetentionPolicy.CLASS : 注解只被保留到编译进行的时候,它并不会被加载到 JVM 中
    • RetentionPolicy.RUNTIME: 注解可以保留到程序运行的时候,它会被加载进入到 JVM 中,所以在程序运行时可以获取到它们。
  • demo:

    @Retention (RetentionPolicy.RUNTIME)
    public @interface aAnnotation {}
    • aAnnotation 可以在程序运行周期被获取到,因此它的生命周期非常的长。

@Target

  • 作用:当一个注解被 @Target 注解时,这个注解就被限定了运用的场景。比如只能张贴到方法上、类上、方法参数上等等
  • 取值:

     ElementType.ANNOTATION_TYPE 可以给一个注解进行注解 (·)
     ElementType.CONSTRUCTOR     可以给构造方法进行注解
     ElementType.FIELD           可以给属性进行注解     (·)
     ElementType.LOCAL_VARIABLE  可以给局部变量进行注解 
     ElementType.METHOD          可以给方法进行注解     (·)
     ElementType.PACKAGE         可以给一个包进行注解
     ElementType.PARAMETER       可以给一个方法内的参数进行注解
     ElementType.TYPE            可给一个类型进行注解,比如类、接口、枚举(·)
    

Others

五、注解的属性

  • 定义:注解的属性也叫做成员变量;注解只有成员变量,没有方法。
  • 定义方式:"无形参的方法"

    • "方法名"定义了该成员变量的名字
    • "返回值"定义了该成员变量的类型
    • 无 {}、代码块
  • 默认值:默认值需要用 default 关键值指定
  • 属性类型的范围:类型必须是 8 种基本数据类型外加 类、接口、注解及它们的数组。
  • demo01 有属性默认值注解:

    @Target(ElemType.TYPE)  
    @Retention(RetentionPolicy.RUNTIME)
    @interface aAnnotation {int id() default -1;
        String name();}
    // 自定义注解的使用
    aAnotation {name = "Shonan"}
    class demo {//...}
    

六、Jakarta现成的注解

@Deprecated

  • 作用:用来标记过时的元素 — IDE 用删除线修饰过时的 staff
  • 动作:编译器在编译阶段遇到这个注解时会发出提醒警告

@SuppressWarnings

  • 作用:阻止警告
  • 动作: ……

@FunctionalInterface

  • 作用:函数式接口注解

    • 附:函数式接口 (Functional Interface) 是只具有一个方法的普通接口
  • 动作:函数式接口可以很容易转换为 Lambda 表达式

七、注解的应用场景

  • 提供信息给编译器:编译器可以利用注解来探测错误和警告信息
  • 编译阶段时的处理:软件工具可以用来利用注解信息来生成代码、Html 文档或者做其它相应处理。
  • 运行时的处理:某些注解可以在程序运行的时候接受代码的提取

正文完
 0