【发布时间】:2010-05-25 11:34:23
【问题描述】:
我有一个场景,我针对库的版本 1 编写了代码,但我想发布库的版本 2。代码已发货,因此不可更改。我担心它可能会尝试访问 v1 中存在但在 v2 中已被删除的库的类或成员。
我认为可以编写一个工具来做一个简单的检查,看看代码是否会链接到新版本的库。我很欣赏即使代码链接,代码仍然可能非常破碎。我正在从另一面考虑这个问题 - 如果代码无法链接,那么我可以确定存在问题。
据我所知,我需要运行字节码检查对库类的引用、方法调用和字段访问,然后使用反射来检查类/成员是否存在。
我有三个问题:
(1)这样的工具已经存在了吗?
(2) 我有一种琐碎的感觉,它比我想象的要复杂得多,而且我错过了一些重要的事情 - 是这样吗?
(3)你知道一个方便的库,它可以让我检查字节码,以便我可以找到方法调用、引用等?
谢谢!
【问题讨论】:
标签: java reflection static-analysis backwards-compatibility bytecode-manipulation