现在我们开始优化
我们想要运行一个任务,肯定要拿到类名
方法名
参数
所以脑海中的第一反应就是写出下面的代码
public class AsyncUtilsV1 {
/**
* <br>
* @param cls 要运行的类
* @param methodName 要运行的方法
* @param args 参数
* @author YellowTail
* @since 2019-04-04
*/
public static void run(Class cls, String methodName, Object... args) {
}
}
我称呼该方案为 字符串方案
, 也就是 方法
是以字符串形式
作为入参
传到我们的异步任务工具类中去的
但是这个方案有一个明显的缺陷
一旦方法名做了更改
,或者参数列表
长度发生变更,那么原先的调用将会报错,因为找不到方法了
有人可能会说,和每个同事讲一下,让他们在做出上面的变更的时候,注意一下这个事情
我觉得这个事情不可行,让别人注意这个,没有什么约束力,我们得从技术层面
去解决这个问题
最好是改了方法之后,不修改调用异步任务的地方就直接编译报错,你包都打不出来,肯定要去修改吧
网友评论