Java注解,99%的人只会用,却不知它才是代码的隐藏BOSS
它是 Java 极为关键且重要 的 组成部分, 自 J2SE 5.0 那个时代起便已然存在了。于我们所编写的代码当中, 我们在任何地方都能够看到数量众多的注解, 诸如 、 、 。这些注解我们或许相当熟悉, 然而注解所具备的作用、呈现的工作原理、展现的工作方式以及我们究竟该如何去自定义注解, 我们或许并不熟悉。在这篇文章里我们就要对这些知识点展开探索。1、什么是注解注解属于一种特别的元数据, 元数据是针对数据的那种数据, 因而, 注解便是代码的元数据。我们瞧瞧下面这个范例。我们借助注解来点明要重写的方法, 以此表明我们将对该方法予以重写。在此处, 即便我们不运用注解, 可以明确这一方法依然能够顺利执行。那么注解所具备的优势究竟是什么呢? 给予编译器一种指示, 即子类要是需要重写此方法, 那就得依照自身所定义的格式来输出相应内容, 这实际上就是对父类方法的覆盖, 在父类之中要是不存在这个方法, 编译器便会给出错误。所以, 注解是一种特殊的Java构造器, 它能够用来装饰类, 它能够用来装饰方法, 它能够用来装饰字段, 它能够用来装饰参数, 它能够用来装饰变量, 它能够用来装饰构造函数或是包。2、为什么要使用注解在注释处于初始状态更甚至是处于后方之时, XML被大范围地运用于来定义元数据。然而随着项目里代码数量的不断增多攀升, 基于XML的维护演变得越逐繁杂难懂费心扰人啦。从事开发相关工作的职员心底切实所期望希望愿景在于, 促使关联的元数据与代码能够紧密连接彼此难解难分, 可XML与代码两者相关纽带耦合着实颇为松散于某些特定情况状况情境之下, 简直如同彼此独立分离开来毫无瓜葛。有关运用注解抑或是基于XML来进行标记, 向来是个存有争议的论题, 对于从事开发相关工作的人员而言, 记住下面这两个原则就行还有一个关键要素是, 注解规定了于代码里厘定元数据的规范途径。在注解出现以前, 开发人员运用自身的办法去定义元数据, 以至于导致元数据定义陷入紊乱状态。但注解乃是标准化的事物, 更便于维护。当下, 绝大多数框架会把XML与注解搭配运用, 目的在于全面发挥两者的有利之处。3、注解的工作方式注解只是元数据, 并不涵盖任何业务逻辑, 那它的使用者究竟是谁呢? 诸如这般的注解, JVM是其使用者, 它在字节码层面开展工作。要是我们自行编写了一个注解, 那我们就得去实现它的消费者, 不然的话, 我们自定义的注解是毫无作用的。4、编写自定义注解在开展编写自定义注解这个行为的时候, 我们首要之事是弄明白几个处于默认状态的注解, 此几个注解其作用仅仅是作用于另外的一个注解上方。注解表明这个注解要被记录。注解默认状态下是不被记录的。注解表明该注解保留到那个阶段主要有三个值—— 这种注解保留在源代码级别编译时就会被忽略CLASS这种注解, 在编译的时候会被保留下来, 它在class文件当中存在着, 然而JVM将会对其进行忽略。有这样一种注解, 它会被JVM留存下来, 借助反射机制能够把它获取到, 进而加以运用。注解所表明的是 , 该注解发挥作用的范畴。其中涵盖了 , 诸如field 、 或是构造方法 、 以及成员变量 、 还有枚举值等各类属性。jj1.yyD521.CoM注解用以表明, 该注解对于子类是否会产生影响。若在定义的注解之上运用了标记, 那么使用该注解的某一个父类, 其所有子类会在默认情况下继承全部的属性。现在我们定义自己的一个注解注解之上运用了三个有着默认性质的注解, 显示出这属于一个注解留意并非接口。与此同时, 我们给定了cron以及desc这两项属性。这便是一个完整无缺的注解, 我们接着来看怎样去运用它。设想这样一个业务场景, 业务里存在诸多定时任务, 针对这些定时任务, 以手动方式实现了线程池来维护并调度相关方法。那么, 线程池中要怎样去获取成为定时任务的那些方法呢? 这正是自定义注解发挥作用之时。我们把自定义的注解运用在了方法上面, 其目的在于能让进行调度的线程池觉察到它。具体的实现情形查看如下代码:我们对所有定时任务方法进行循环遍历, 从中获取方法上所具有的注解, 针对方法上出现的有的注解, 进行说明标识, 表明该方法乃是定时任务的方法, 另外, 去获取注脚上已然存在的cron属性值, 用以设定执行任务的周期。至此我们就完成了一个自定义的注解。5、注解用例功能强大的注释, 和诸如之类的框架对注解加以广泛运用, 应用于日志记录以及验证方面, 在规范3.0里边, 引入了诸多注解, 特别是和安全性相关联的注释, 咱们来看一看一些平常常见的注解。

相关新闻

初创公司如何选择合适的UI工具支撑快速迭代产品?

初创公司如何选择合适的UI工具支撑快速迭代产品?

刚起步的公司所面临的关键难题是, 时间和资源呈现出极度紧张的状况, 其团队规模较小, 预算又有限, 然而要在最短的周期之内, 去验证产品想法、迭代用户反馈, 还要完成从MVP到市场的过程, 正是基于于此情境, 挑对恰当的UI工具不但对设计效率产生影响, 而且更加直接左右着产品上线…

2026/8/26 16:19:16 阅读更多 →
异常的意思

异常的意思

成语(Idiom):异常发音():y chng基本含义(Basic ):与正常情况不同,超出寻常。具体详尽的去阐释(): 意味着事物的进展或者呈现出的状态跟…

2026/8/26 15:27:57 阅读更多 →
073、ALV与Function Module(REUSE_ALV_GRID_LIST)

073、ALV与Function Module(REUSE_ALV_GRID_LIST)

073、ALV与Function Module(REUSE_ALV_GRID_LIST) 入行那会儿,最怕听到“ALV”三个字。项目里老顾问甩过来一个函数名,REUSE_ALV_GRID_LIST,说“拿去用,报表就出来了”。结果真跑起来,屏幕是黑了还是白了,数据全列出来了但点一下标题就崩溃,最诡异的是明明内表有数,…

2026/8/26 16:56:05 阅读更多 →

最新新闻

海思平台不依赖频道文件实现 DVB 直接播放

海思平台不依赖频道文件实现 DVB 直接播放

1. 频道文件与直接调谐的区别传统方案的流程是:搜索频道↓ 导出频道文件↓ 系统预置频道文件↓ 开机导入↓ 根据文件中的 PID 播放频道文件通常包含:频率;符号率;调制方式;节目号;视频 PID;音频…

2026/8/26 18:52:29 阅读更多 →
海思 DVB 播放超时与 C 语言同名函数冲突排查

海思 DVB 播放超时与 C 语言同名函数冲突排查

概要本文记录一次海思 DVB 直接播放失败的定位过程。程序最初出现 HI_UNF_TUNER_SetAttr failed,修正前端参数后又出现 HIADP_Search_GetAllPmt failed 和 DMX_DataRead timeout。进一步分析发现,unf_abs.c 与 hi_adp_demux.c 中存在同名函数&#xff0c…

2026/8/26 18:52:29 阅读更多 →
IoT OTA 灰度发布与回滚:从设备分组到故障收敛

IoT OTA 灰度发布与回滚:从设备分组到故障收敛

一次固件在实验室成功升级,只证明“这台设备在这次条件下写入并启动了新镜像”。它没有证明车队里不同硬件修订、运营商网络、剩余电量、存储磨损、现场外设和长时间离线设备都能安全升级。真正的 IoT OTA 系统不是文件分发器,而是一套限制故障半径、判断…

2026/8/26 18:52:29 阅读更多 →
【超详细】搞懂tar、tgz、zip、rar、7z归档压缩格式,理清跨平台踩坑根源

【超详细】搞懂tar、tgz、zip、rar、7z归档压缩格式,理清跨平台踩坑根源

文章目录1、先分清归档与压缩,很多初学者的概念误区1.1 归档与压缩二者完全是两件独立工作1.2 两套技术路线诞生的历史背景2、tar家族格式完整拆解:tar / tar.gz / tgz / tar.bz2 / tar.xz2.1 tar归档格式,只打包不压缩2.2 gzip介入之后&…

2026/8/26 18:52:29 阅读更多 →
Langchain学习笔记(4) ---rag基础和向量数据库

Langchain学习笔记(4) ---rag基础和向量数据库

一、文档加载与切分二、Embeddingfrom langchain_milvus.vectorstores.milvus import Milvus from utils.rag_factory import get_milvus_client# 获取milvus客户端 vector_store: Milvus get_milvus_client("employee_handbook",is_deleteFalse) results vector…

2026/8/26 18:52:29 阅读更多 →
【Playwright教程】Playwright必备基础知识、核心用途与第一个截图实战

【Playwright教程】Playwright必备基础知识、核心用途与第一个截图实战

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:软件测试学习提升资料包 🔥 教程推荐:自动化测试从入门到精通全套保姆级教程 📢欢迎点赞 👍 收藏 ⭐留言 学习 Playwri…

2026/8/26 18:51:29 阅读更多 →

日新闻

Python random 模块常用函数详解:从入门到实战

Python random 模块常用函数详解:从入门到实战

目录 1. 引言2. 准备工作3. 基础随机函数4. 序列相关函数5. 随机种子与复现6. 实战案例7. 注意事项8. 常见问题与排查9. 总结 1. 引言 摘要: 本文系统介绍 Python 标准库 random 模块中最常用的随机数生成函数。内容涵盖基础随机函数(random()、unifor…

2026/8/26 0:00:40 阅读更多 →
《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》读书笔记--第三章Databases and Database Files(2)

《Microsoft Sql server 2008 Internals》索引目录: 《Microsoft Sql server 2008 Internals》读书笔记--目录索引 在上篇文章中,主要介绍了创建数据库的基本语法和FileGroup的初步知识。需要注意的是: 关于FileGroup 如果你的系统是用Raid设备直接存…

2026/8/26 1:18:18 阅读更多 →
政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体怎么建?三种模式、三步路径与四个误区

政务AI智能体已经从概念试点阶段,转入了政务服务的常态化落地应用;在实际使用过程中,它能自主理解办事需求、辅助完成填报申报、开展材料预审,并联动多个系统协同作业,真正嵌入到政务办理的全流程当中。但在落地推进过…

2026/8/26 1:18:18 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/26 14:45:33 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/26 17:46:43 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/26 14:46:37 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/26 3:50:20 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/26 17:46:39 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/26 1:24:05 阅读更多 →