最近一次上线更新了项目中使用的 Jsoup 版本,从 1.4.1 更新到 1.10.3,发现后台某个类 A 报 java.lang.NoSuchMethodError,找不到 Elements.add 这个方法。
由于上线都是搞增量包更新,A.java 并未进行过修改,所以没更新 A.class 文件。比较了两个版本下 A.class,发现文件大小变了。
jsoup1.4.1 版本 Elements 定义:public class Elements implements List
jsoup1.10.3 版本 Elements 定义:public class Elements extends ArrayList
所以旧的 A.class 中引用的 add 方法是 Elements 类实现的 add,新版本 A.class 中引用的 add 方法是 ArrayLis 类的 add。
不更新 A.class,当然找不到 Elements.add 方法了。
总结:jar 更新版本时,源文件未修改不代表 class 文件也未修改,还是扫描下 class 文件变化比较好。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于