问题
上线时发现好多error日志,定睛一看是报警功能的异常,要呵呵。看异常大概是这样:
image.png
怎么可能,其它地方调用这个方法正常,IDEA里显示的代码也是有这个方法的。
解决思路
这个方法真的存在吗?仔细对比方法签名。报错方法签名后面有个V,这个代表方法返回值是void类型。
问题复现
common1、common2、middle、tester分表代表基础包版本1、基础包版本2、对基础包的封装、测试类
基础模块
两个版本差别是一个没有返回值,一个有返回值
image.png image.png
中间包
它引用common1(必须是common1),简单封装一下。
image.png
测试包
它应用common2和middle,middle把common1排除掉。
image.png
问题分析
image.png看middle中的SendMsg字节码,发现使用Producer的send方法是不带返回值的。
由于tester升级了common1为common2,导致Producer没有那个方法了。
image.png
网友评论