我希望能够比较两个版本的类/库,以确定是否有任何更改可能会破坏调用它的代码。例如,考虑某个类 Foo,在版本 a 中具有一个方法:
public String readWidget(Object widget, Object helper);
在版本b中,该方法变为:
public String readWidget(Object widget); //removed unnecessary helper object
或者在字段的情况下类似于这样:
version a: public static Object sharedFoo;
version b: static Object sharedFoo; //moved to package private for version b
我希望能有一个工具,可以将这些更改标记为潜在的不兼容性(但最好不要反向增加方法的可见性)。现在我知道我可以通过反射或分析javap的输出来实现这一点,但似乎应该存在一个现有的工具(最好是非商业性质的)。因此,在我犯下自己制作/不必要地重复造轮子之前,我想看看是否有人可以推荐一些工具。