502. Java 反射 - 编写 MessageInterceptor 类
文章目录502. Java 反射 - 编写 MessageInterceptor 类1. 设计思路2. MessageInterceptor 实现3. 示例讲解原始服务类测试调用输出结果4. 总结502. Java 反射 - 编写 MessageInterceptor 类1. 设计思路拦截器的目标是在调用目标方法前→ 校验或修改参数。调用目标方法→ 执行实际的业务逻辑。在调用目标方法后→ 处理返回值或执行额外逻辑。在这个例子中我们希望拦截SomeInterceptedService.message()方法并且检查参数是否合法非空、非空字符串。调用原始方法获取结果。在结果末尾加上 [was intercepted]来表明它被拦截过。2. MessageInterceptor 实现publicclassMessageInterceptorimplementsInterceptorSomeInterceptedService,String{OverridepublicStringintercept(SomeInterceptedServiceservice,MethodinterceptedMethod,Object...arguments){try{if(arguments.length1){// ✅ 1. 参数校验Stringinput(String)arguments[0];Objects.requireNonNull(input,Input is null);if(input.isEmpty()){thrownewIllegalArgumentException(Input is empty);}// ✅ 2. 调用目标方法Stringresult(String)interceptedMethod.invoke(service,arguments);// ✅ 3. 修改返回值returnresult [was intercepted];}}catch(IllegalAccessException|InvocationTargetExceptione){thrownewRuntimeException(Error invoking method reflectively,e);}thrownewIllegalArgumentException(Arguments should contain exactly one argument of type String);}}3. 示例讲解原始服务类publicclassSomeInterceptedService{Intercept(MessageInterceptor.class)publicStringmessage(Stringinput){returninput.toUpperCase();}}测试调用publicclassMain{publicstaticvoidmain(String[]args)throwsException{Stringoutput(String)ServiceFactory.invoke(SomeInterceptedService.class,message,hello);System.out.println(Final output output);}}输出结果FinaloutputHELLO[was intercepted]4. 总结参数校验如果传入null或空字符串会抛出异常阻止目标方法的执行。拦截逻辑我们在调用message()前后加入了额外逻辑参数校验 结果追加说明。反射调用通过interceptedMethod.invoke(service, arguments)来执行实际的业务方法。增强返回值返回值被拦截器修改增加了 [was intercepted]。

相关新闻

越华碳能:多协议兼容组件化采集架构|存量计量设备利旧型能碳平台设计

越华碳能:多协议兼容组件化采集架构|存量计量设备利旧型能碳平台设计

越华碳能能碳平台搭建多协议插件化采集微服务架构,解决存量计量设备兼容难题,大幅削减厂区硬件全盘更换带来的数字化改造成本。 一、技术痛点与行业背景 传统一体化能碳系统采用私有封闭通讯协议,仅对接厂商自研计量终端,存量电表…

2026/8/23 23:26:39 阅读更多 →
元初混沌体系 第三卷 卫星互联网全域周天拓扑体系:第六篇 全球无盲区连续覆盖鸿蒙约束方程

元初混沌体系 第三卷 卫星互联网全域周天拓扑体系:第六篇 全球无盲区连续覆盖鸿蒙约束方程

第六篇 全球无盲区连续覆盖鸿蒙约束方程承启前置 数理闭环立论前五篇已逐级完成第三卷周天拓扑体系的本源奠基:确立一气循环均衡总公理、证伪西方传统拓扑范式缺陷、搭建周天几何与开普勒力学融合模型、划定三层圈层功能边界、定型倾角—升交点—相位三大核心排布定…

2026/8/23 23:26:39 阅读更多 →
工信部三级智能制造评审通关背后:一天,一个项目组,一家灯饰厂

工信部三级智能制造评审通关背后:一天,一个项目组,一家灯饰厂

中山市明某智能照明迎来工信部智能制造三级现场评审。精工智能项目团队全天驻场,用半天时间跑完从车间设备联调到跨部门流程拉通的全流程彩排,下午完成迎审布置与现场答辩支撑。本文记录了一次评审攻坚的真实过程——智能制造能力成熟度评估,…

2026/8/23 23:26:39 阅读更多 →

最新新闻

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

论文AI率过高怎么办?2026年12款免费降AI率工具实测指南

现在毕业论文答辩前,“AI率超标”已经彻底取代“查重率过高”,成了同学们的头号难题!不少同学只是用AI润色了摘要和结论,AI率直接飙升到离谱,纯手动修改根本不管用——这说明AIGC检测系统抓的不是个别词语,…

2026/8/23 23:59:54 阅读更多 →
Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS

Marketch:从Sketch画板直接量取CSS 【免费下载链接】marketch Marketch is a Sketch 3 plug-in for automatically generating html page that can measure and get CSS styles on it. 项目地址: https://gitcode.com/gh_mirrors/ma/marketch 设计稿交付还在…

2026/8/23 23:59:54 阅读更多 →
如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南

如何在ThinkPad X390上安装macOS:OpenCore EFI完整指南 【免费下载链接】ThinkpadX390-Opencore-EFI macOS Catalina & Big Sur & Monterey on ThinkPad X390 (Hackintosh) 项目地址: https://gitcode.com/gh_mirrors/th/ThinkpadX390-Opencore-EFI …

2026/8/23 23:59:54 阅读更多 →
WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化

WechatHook 终极指南:5大核心能力详解,3分钟看懂微信自动化 【免费下载链接】WechatHook Enjoy hooking wechat by Xposed....Accessibility...and so on... 项目地址: https://gitcode.com/gh_mirrors/we/WechatHook WechatHook 是一个基于 Xpos…

2026/8/23 23:59:54 阅读更多 →
OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定

OpenModScan:免费跨平台 Modbus 主站调试工具,让现场通讯验证一键搞定 【免费下载链接】OpenModScan Open ModScan is a Free Modbus Master (Client) Utility 项目地址: https://gitcode.com/gh_mirrors/op/OpenModScan OpenModScan 是一款开源免…

2026/8/23 23:59:54 阅读更多 →
Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制

Gin-JWT认证与授权方案从Token到RBAC权限控制 文章导语 JWT(JSON Web Token)是现代Web服务的身份认证标准。在Gin框架中集成JWT看似简单,但涉及Token刷新、黑名单、多设备登录、RBAC权限控制等实际需求时,就需要更完善的设计。本文…

2026/8/23 23:57:54 阅读更多 →

日新闻

周新闻

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

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

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

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

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

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

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

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

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

2026/8/24 0:14:11 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/23 12:10:44 阅读更多 →
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/22 3:22:48 阅读更多 →