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:允许子类继承父类中的注解

  • 拓展:元数据

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

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

相关推荐
Swift社区2 小时前
在 Swift 中实现字符串分割问题:以字典中的单词构造句子
开发语言·ios·swift
没头脑的ht2 小时前
Swift内存访问冲突
开发语言·ios·swift
没头脑的ht2 小时前
Swift闭包的本质
开发语言·ios·swift
wjs20242 小时前
Swift 数组
开发语言
xiaoyalian3 小时前
R语言绘图过程中遇到图例的图块中出现字符“a“的解决方法
笔记·r语言·数据可视化
吾日三省吾码3 小时前
JVM 性能调优
java
stm 学习ing3 小时前
FPGA 第十讲 避免latch的产生
c语言·开发语言·单片机·嵌入式硬件·fpga开发·fpga
湫ccc4 小时前
《Python基础》之字符串格式化输出
开发语言·python
弗拉唐4 小时前
springBoot,mp,ssm整合案例
java·spring boot·mybatis
Red Red4 小时前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全