通过反射的思想来获取类方法

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+",内部抛出异常!!!")
}

总结:当我们根据状态调用不同的方法时候可以考虑用这种方式来实现调用,这种设计可以提取到一个抽象类中,其它子类继承该方法,就可以在子类中自动调用该方法

关注我的公众号SpaceObj 领取idea系列激活码

posted on   张伯灵  阅读(35)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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)



点击右上角即可分享
微信分享提示