Java —— 注解

注解的使用

1.Annotation的理解

  • 注释(annotation)是从'jdk5.0'开始引入,以'@注解名'在代码中存在
  • Annotation可以像修饰符一样被使用,可以修饰包、类、构造器、方法、成员变量、参数、局部变量的声明。还可以添加一些参数值,这些信息被保存在Annotation("name = value")
  • 注解还可以在类编译、运行时进行加载,体现不同的功能。

2.注解的应用场景

  • 生成文档相关的注解
  • 在编译时进行格式检查(JDK内置的三个基本注解'@Override、@Deprecated、@SuppressWarnings')
  • 跟踪代码依赖性,实现替代配置文件功能

3.Java基础涉及到的三个常用注解

  • @Override: 限定,校验重写父类方法,该注解只能用于方法,
  • @Deprecated: 用于表示所修饰的元素(类,方法等)已过时。通常是因为所修饰的结构危险或存在更好的选择,向下兼容
  • @SuppressWarnings: 抑制编译器警告

4.自定义注解

java 复制代码
@Target({TYPE, METHOD, CONSTRUCTOR})  //可修饰的结构
@Retention(RetentionPolicy.SOURCE)  //生命周期
public @interface MyAnnotation {   //在类中使用@MyAnnotation()
    String value() default "hello";  
}

5.元注解的理解

  • 元注解:对现有的注解进行解释说明的注解

  • 举例:

    java 复制代码
    @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, MODULE})
    @Retention(RetentionPolicy.SOURCE)
    //修饰现有的@SuppressWarnings注解的注解(@Target 和 @Retention)
    public @interface SuppressWarnings {  
        String[] value();
    }
  • 常用的4个元注解

    • @Target:用于描述注解的使用范围

      @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE, MODULE})

      可以通过枚举类型ElementType的10个常量对象来指定

      TYPE,METHOD,CONSTRUCTOR,PACKAGE...

    • @Retention:用于描述注解的生命周期

      可以通过枚举类型RetentionPolicy的3个常量对象来指定,SOURCE(源代码)、CLASS(字节码)、RUNTIME(运行时)唯有RUNTIME阶段才能被反射读取到

    • @Documented:表明这个注解应该被 javadoc工具记录。

    • @Inherited:允许子类继承父类中的注解

  • 拓展:元数据

    元数据是关于数据的数据,用于描述数据的属性和结构,以便用户能够更好地识别、评价、追踪和管理数据资源

  • 框架 = 注解 + 反射 + 设计模式

相关推荐
wearegogog123几秒前
NOMA下行链路用户与信道功率分配优化MATLAB实现
开发语言·matlab
jiayong234 分钟前
Word图文混排实战技巧
开发语言·c#·word
hqwest5 分钟前
码上通QT实战27--系统设置02-加载用户列表
开发语言·qt·sqlite·qtablewidget
雾岛听风眠7 分钟前
STM32HAL库学习笔记
笔记·stm32·学习
儒雅永缘13 分钟前
Solidworks练习37-旋转、拉伸切、阵列
笔记·学习
运维@小兵13 分钟前
Spring AI入门
java·人工智能·spring
丝斯201115 分钟前
AI学习笔记整理(47)——大模型企业应用技术之提示工程
人工智能·笔记·学习
木木木一19 分钟前
Rust学习记录--C0 总目录
开发语言·学习·rust
Geoking.20 分钟前
【设计模式】策略模式(Strategy)详解:把 if-else 变成可切换的算法
java·设计模式·策略模式
代码改变生活-12021 分钟前
idea 清除缓存之后重启项目编译失败
java·缓存·intellij-idea