Java 注解(详细学习笔记)
创始人
2025-05-30 15:51:18
0

注解

注解英文为Annotation

  • Annotation是JDK5引入的新的技术

  • Annotation的作用:

    • 不是程序本身,可以对程序做出解释
    • 可以被其他程序(比如编译器)读取。
  • Annotation的格式:

    注解是以@注解名在代码中存在的,还可以添加一些参数值,例如:@SuppressWarnings(value="unchecked")

  • Annotation在那里使用

    可以附加在package、class、method、field等上面,相当于给他们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。

1.常用注解

(1)@Override 表示重写

(2)@Deprecated表示不推荐使用,存在更好方法,之后可以回淘汰。

(3)@SuppressWarnings表示镇压警告。

2.元注解

元注解的作用就是负责注解其他注解,Java定义了4个标准的meta-annotation类型,他们可以被用来提供对其他annotation类型作说明。

这些注解和他们所支持类在java.lang.annotation包中可以找到

  • (1)@Target

    用来描述注解的使用范围(即:被描述的注解可以用在说明地方)

  • (2)@Retention

    表示在什么级别保存该注释信息,用来描述注解的生命周期

    SOURCE<CLASS<RUNRIME

  • (3)@Document

    说明该注解将被包含在javadoc中

  • (4)@Inherited

    说明子类可以继承父类中的注解

2.1@Target

@Target的参数是一个枚举类型的数组,ElementType

public enum ElementType {TYPE,			//类、接口(包括注释类型)或枚举声明FIELD,			//字段声明(包括enum常量)METHOD,			//方法声明PARAMETER,		//参数CONSTRUCTOR,	//构造函数声明LOCAL_VARIABLE,	//局部变量说明ANNOTATION_TYPE,//注释类型声明PACKAGE,		//包说明TYPE_PARAMETER,	//类型参数声明TYPE_USE		//类型使用
}

2.2 @Retention

表示在什么级别保存该注释信息,用来描述注解的生命周期,它的参数也是一个枚举类型RetentionPolicy

public enum RetentionPolicy {//注释将被编译器丢弃。SOURCE,//注释将由编译器记录在类文件中,JVM不会保留(默认)CLASS,// 运行时(因此它们可以反射式地读取)RUNTIME
}

3.自定义注解

  • @interface 用来声明一个注解,格式:public @interface 注解名{ 定义内容 }

  • 其中每一个方法实际上是声明了一个配置参数

  • 方法的名称就是参数的名称

  • 返回值类型就是参数的类型(返回值只能是基本类型、Class、String、enum

  • 可以通过default来声明参数的默认值

  • 如果只用一个参数成员,一般参数名称为value

  • 注解元素必须有值,我们定义注解元素时,经常使用空字符串,0作为默认值。

@Target({ElementType.METHOD, ElementType.TYPE, ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Documented //生成到javadoc中
@Inherited  // 子类可以继承
public @interface MyAnnotation {String[] value() default {};int id() default 0;
}

相关内容

热门资讯

C指针:程序员的望远镜 C指针:程序员的望远镜一、什么是指针1.1 指针的定义1.2 指针和普通变量的区别1....
牛客网Java面试题及答案整理... 学习如逆水行舟,尤其是 IT 行业有着日新月异的节奏,我们更要抓紧每一次...
江西宜春智慧停车欠费清缴享7折... 极目新闻记者 杜光然 近日,江西网友发视频称,宜春智慧停车公司开启了端午缴费特惠活动,车主享停车费7...
律数科技申请基于区块链的小额金... 金融界2025年5月31日消息,国家知识产权局信息显示,北京律数科技有限公司申请一项名为“一种基于区...
好用的5款国产低代码平台介绍 一、云程低代码平台 云程低代码平台是一款基于springboot、vue.js技术的企业级低代码...
【数据结构第三章】- 队列 目录 一、队列的定义和特点 二、循环队列 2.1 - CircularQueue.h 2.2 - C...
如何将pdf文件压缩?pdf压... PDF是一种常见的文档格式,因为包括文本格式和图像,我们往往采用这种格式...
0X30数学知识 - 质数 定义: 若一个正整数无法被除了1和它自身之外的任何自然数整除,则称该数...
中方代表:俄乌冲突战场上武器数... 当地时间5月30日,中国常驻联合国副代表耿爽在安理会审议向乌克兰提供武器问题时发言指出,战场上武器数...
法网|冲击八强!女单第四轮,郑... 齐鲁晚报·齐鲁壹点 怀晓 郑钦文将向八强席位发起冲击。新华社发 连下3场击败帕芙柳琴科娃、阿朗戈和...