有没有办法静态检测一组 Java 类文件中损坏的引用?

问题描述

我最近遇到了一个问题,我将一个 Java 项目中的一些依赖项升级到了较新的版本,事情似乎没问题,但结果是我的单元测试中未执行的一个代码路径有时会抛出一个 NoSuchMethodError。这是因为我的代码所依赖的一个库(我们称之为 libB)有时会调用我的代码所依赖的另一个库中的方法 (libA),而较新版本的 libA 已删除方法。在我的构建过程中没有发现任何内容,因为我的代码都没有直接引用已删除方法

我想知道是否有任何工具可以通过对我的类路径中的类进行静态分析来帮助检测这种情况(这是将在类路径上的完整的类类集在运行时——不仅仅是我的代码的类,或者我的编译时类路径)。

我知道在使用预定义类路径之外的反射或类加载的情况下这不是完美的,但除此之外,我相信它至少在理论上是可能的:从一组一个或多个入口点开始,爬取子图方法中的引用,并报告是否发现任何在类路径中不匹配的引用。

是否有任何工具可以真正做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)