微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。