通过反射的思想来获取类方法
Class c = this.getClass();//获得当前类对象 Method = null; try{ /** *methodName 要调用的方法名 *HttpServletRequest.class 方法参数类型 *HttpServletResponse.class 方法参数类型 getMethod中只能有一个方法名,但是可以包含多个方法参数类型(类似数组) */ method = c.getMethod(methodName,HttpServletRequest.class,HttpServletResponse.class); }catch(Exception e){ throw new RuntimeException("您调用的方法不存在") }
//调用类方法
try{ /** *this 当前类对象 *req 方法参数 *resp 方法参数 invoke方法中只能包含一个类对象,和多个方法的参数(类似参数数组) */ method.invoke(this,req,resp); }catch(Exception e){ throw new RuntimeException("您调用的方法"+methodName+",内部抛出异常!!!") }
总结:当我们根据状态调用不同的方法时候可以考虑用这种方式来实现调用,这种设计可以提取到一个抽象类中,其它子类继承该方法,就可以在子类中自动调用该方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)