Java 注解真的只是“打个标签”吗?

发布时间:2026/10/29 12:29:47

Java 注解真的只是“打个标签”吗? 目录介绍元注解TargetRetentionInheritedRepeatable演示使用介绍注解是什么注解本质上是元数据一种代码级别的注释。用处给类方法接口等添加额外的信息原理使用 interface 定义注解。注解在编译后会成为一种特殊的接口类型并继承 java.lang.annotation.Annotation。注解本质上可以理解为一种特殊的接口。然后通过编译器、JVM 或框架读取并使用这些信息。元注解用来“描述注解的注解”。Target指定注解的使用范围---ElementTypeElementType可以使用的位置举例TYPE类、接口、枚举Service class UserServiceMETHOD方法Override void run()FIELD成员变量Autowired UserService servicePARAMETER方法参数void test(Param String name)CONSTRUCTOR构造方法Inject UserService()LOCAL_VARIABLE局部变量Nullable String namePACKAGE包xxx package com.exampleANNOTATION_TYPE注解给“注解”本身加注解Retention指定注解的保留时期--RetentionPolicyRetentionPolicy保留时期编译后运行时反射SOURCE只保留在源码阶段❌ 编译后丢弃❌ 无法获取CLASS保留到编译后的.class文件✅ 保留❌ 无法获取RUNTIME一直保留到运行阶段✅ 保留✅ 可以通过反射获取和使用Inherited类上的注解是否可以被子类继承Repeatable同一个注解可以使用多次演示使用反射中的Class对象可以获取一个类的各种元信息。前面我们学习到注解属于类的元数据因此我们可以通过Class对象获取这个类上的注解。注解属性在正常情况下只能读取不能在运行时修改。也就是说我们在写代码时就已经pinned。1. 注解定义Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface MyAnnotation { // 定义注解属性 // 1. String属性定义 String myStringMeta() default 今天是2026.8.23,天气非常不错; // 2. 基本类型属性定义 int count() default 23; boolean enable() default true; //... // 3. Class Class? target() default Object.class; // 4. 枚举 Level level() default Level.TOP; }2. 应用到类中的某一方法public class MyTest { MyAnnotation( myStringMeta 这是一个测试, count 24, enable false, target Test.class, level Level.NORMAL ) public void testMethod(){ System.out.println(-----方法体----); } }3. 获取注解并读取属性public class Test { public static void main(String[] args) throws NoSuchMethodException { Method method MyTest.class.getMethod(testMethod); MyAnnotation annotation method.getAnnotation(MyAnnotation.class); System.out.println(annotation.myStringMeta()); System.out.println(annotation.count()); System.out.println(annotation.enable()); System.out.println(annotation.level()); System.out.println(annotation.target()); } }输出这是一个测试24falseNORMALclass com.zzy.annotationdemo.Test演示代码JavaBasic/annotationdemo at main · LuSwordman/JavaBasichttps://github.com/LuSwordman/JavaBasic/tree/main/annotationdemo
延伸阅读

更多相关文章

2026/10/25 19:10:36

量化概念 14:过拟合与样本外(回测越漂亮,越要警惕)

回测年化 40%,实盘一年后只剩 5%——这种情况在量化里太常见了。问题往往不是策略不好,而是回测本身骗了你:策略在历史数据上过拟合了。 什么是过拟合 过拟合(overfitting),是模型把历史数据里的噪声当成了…

2026/10/28 3:24:21

复制:主从、多主、无主

每台机器只有「部分的真相」。复制是把同一份数据放到多台机器上,让系统在单机挂掉时还能继续服务。 为什么需要复制 单机有物理上限。数据量可能超过单机磁盘,请求量可能超过单机 CPU,还有机器故障、机房断电这些不可抗力。复制把数据拷贝到…

2026/10/25 11:54:33

微信DAT文件加密机制解析与Python批量解密工具实战

简介:这是一款专为微信电脑版用户设计的.dat文件解析工具,面向普通用户与轻度技术爱好者,解决微信本地存储的图片及表情包无法直接查看、导出的痛点。工具可精准提取WeChat Files目录下.dat文件中的原始图像资源,并批量转换为JPG、…

2026/10/29 12:25:29

马尾辫技术拆解:发根倒梳、固定与碎发处理全流程

1. 马尾辫这个看似简单的事,其实门道不少ponytail,马尾辫,可能是全世界出现频率最高的发型,没有之一。从幼儿园小姑娘到通勤上班族,从健身房到红毯,马尾辫几乎覆盖了所有年龄层和场景。但恰恰因为它太常见&…

2026/10/29 12:25:29

Material UI滑动选择器样式深度定制指南

1. 项目背景与需求分析 最近在开发一个数据可视化后台时,发现系统原生的滑动选择器(Slider)组件样式过于单调,与整体UI设计风格不协调。经过调研发现,Material UI提供的Slider组件虽然功能完善,但默认样式在以下场景存在不足&…

2026/10/29 12:25:29

大模型:AI时代的操作系统与开发范式变革

1. 大模型:AI时代的操作系统革命 去年第一次用ChatGPT写代码时,我就被它的"思考能力"震惊了。它不仅能理解模糊的需求描述,还能自动补全整个函数实现——这完全颠覆了传统编程工具的使用体验。这种能力的背后,正是大模型…

2026/10/29 12:25:29

强化学习在出行服务调度中的动态优化实践

1. 项目概述:当出行服务遇上强化学习 去年夏天,我在为某出行平台做效率优化咨询时,遇到一个典型难题:早晚高峰时段,平台既需要保障司机收入,又要控制乘客等待时间,还要应对突发天气变化。传统静…

2026/10/29 12:25:29

ponytail 插件实战:从安装到自动化工作流搭建

ponytaill 插件实战:从安装到自动化工作流搭建 说实话,第一次听说 ponytail 这个插件工具时,我以为是哪个开源作者在取名上偷了懒——马尾巴?皮筋?直到真正用了几天,才发现这东西解决的是我工作中最头疼的重…

2026/10/29 12:20:29

ico小头像设置全攻略:从PNG到多尺寸ICO的转换、应用与避坑指南

简介:这份资源是一份关于ico小头像(favicon)设置的入门教程文档,主要面向需要为网站添加浏览器图标标识的站长、前端开发者和网站运营人员。文档从favicon的起源与作用讲起,说明其在品牌展示和用户体验中的价值&#x…

2026/10/28 14:42:12

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/28 15:28:56

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/29 0:03:42

学生选课系统DFD图绘制指南:边界划分与分层校验实战

简介:文档以顶层与第一层DFD图为核心,完整刻画学生选课系统的逻辑模型,面向软件工程课程设计、系统分析学习及毕设前期建模人群。顶层图界定系统边界,外部实体包括管理员、教师和学生三类角色;第一层图进一步细化用户登…

2026/10/29 0:03:42

JIRA敏捷落地:Scrum角色权限、Sprint与燃尽图避坑指南

简介:围绕“基于JIRA的敏捷开发项目管理”这一主题,面向产品负责人、Scrum Master及研发测试成员,梳理Scrum角色分工、迭代流程与JIRA工具配置的对应关系,适合初、中级团队导入敏捷管理时参考。压缩包共1个docx文件,大…

2026/10/29 0:03:42

SEMI S8人机工程验收实战:从条款拆解到现场实测的完整指南

简介:面向半导体设备设计、制造与运维工程师及安全合规人员,这份资料聚焦SEMI标准体系下的设备安全规范,重点收录SEMI S8-0308《半导体制造设备人体工程学工程安全指南》。内容围绕设备设计原则、错误与事故预防、人体工程学适配三大主线展开…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑