Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。
这句话的意思是,Java 中的类、方法、变量、参数和包等元素都可以使用 注解(Annotation) 来进行标记或说明。注解不仅仅是文档性的说明,它们还可以在编译时或运行时通过反射获取到其具体内容
- 注解(Annotation):在 Java 中,注解是一种特殊的语法形式,可以用于对类、方法、字段、参数等元素进行标记。它不像传统的注释那样只是供开发人员查看,它还可以被程序处理,影响代码的执行
- 注解** 不仅用于标记代码,还可以通过反射机制在程序运行时获取其内容,并且可以被编译器或其他工具(如框架)使用来影响代码的行为
- 注解的编译与运行时:
- 编译时:注解可以嵌入到字节码中,在编译过程中,注解的内容可以被编译器读取并使用
- 运行时:Java 虚拟机(JVM)可以保留注解内容,程序运行时可以通过反射获取到注解的内容,从而执行不同的逻辑
元注解
[!quote] 元注解 元注解 是可以在注解上使用的注解,包括 :
@Target描述注解的使用范围
valueElementType 的数组
- ElementType.TYPE
- ElementType.CLASS
- ElementType.METHOD
- ElementType.FIELD
- ……
@Retention描述注解的生命周期
- SOURCE
- CLASS
- RUNTIME
@Documented该注解应该被包含在 javadoc 中@Inherited该注解可以被继承