Java基础-注解

注解本质是继承了Annotation接口的一个接口


首先,我们通过键值对的形式可以为注解属性赋值,像这样:@Hello(value = "hello")。

接着,你用注解修饰某个元素,编译器将在编译期扫描每个类或者方法上的注解,会做一个基本的检查,你的这个注解是否允许作用在当前位置,最后会将注解信息写入元素的属性表。

然后,当你进行反射的时候,虚拟机将所有生命周期在 RUNTIME 的注解取出来放到一个 map 中,并创建一个 AnnotationInvocationHandler 实例,把这个 map 传递给它。

最后,虚拟机将采用 JDK 动态代理机制生成一个目标注解的代理类,并初始化好处理器。

那么这样,一个注解的实例就创建出来了,它本质上就是一个代理类,你应当去理解好 AnnotationInvocationHandler 中 invoke 方法的实现逻辑,这是核心。一句话概括就是,通过方法名返回注解属性值。

相关推荐
Lizhihao_2 分钟前
JAVA-队列
java·开发语言
喵叔哟11 分钟前
重构代码之移动字段
java·数据库·重构
喵叔哟11 分钟前
重构代码之取消临时字段
java·前端·重构
fa_lsyk14 分钟前
maven环境搭建
java·maven
远望清一色20 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
何曾参静谧28 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices32 分钟前
C++如何调用Python脚本
开发语言·c++·python
Daniel 大东33 分钟前
idea 解决缓存损坏问题
java·缓存·intellij-idea
wind瑞39 分钟前
IntelliJ IDEA插件开发-代码补全插件入门开发
java·ide·intellij-idea
HappyAcmen40 分钟前
IDEA部署AI代写插件
java·人工智能·intellij-idea