这个异常就是字面意思,“没有对应的方法”,我这里主要是记录一下今天所碰见的一个比较奇怪的现象。
今天在项目系统中碰到这么一个异常,排查了许久,无论是在debug的时候调试调用所谓“缺失“的方法(在debug里面调用的到,但运行起来就抛异常),还是根据依赖路径去找对应依赖包底下找对应的方法,都无法解决问题。甚至一度去官网上下载等同版本的依赖包做MD5哈希码的比较。都没有解决问题。
没有任何头绪,只能求助于源码开发者的帮忙,但是他告诉我他那边测试是可以的。于是,换了个思维想,重新编译了调用这个“缺失方法”的对象,结果发现成功了。
总结:当某个依赖包升级幅度很大的时候,内部有些方法的返回类型,或者是出入参有所变化,但是调用这个变化的方法的对象,没有重新进行编译,那记录在内部的,仍然是旧版的方法体,与实际上新版依赖包内部的方法并不一致,这时候,去运行项目,就会抛出这样的异常,解决方案也很简单,重新编译一下有调用到这个变化的方法的对象类即可,属于小概率事件,谨饬起见,于此记录。