有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

验证java类之间方法契约的一致性

我们公司有一个巨大的应用程序,它是用它的源代码(实际上几乎所有的源代码)购买的,我们一直在努力使它适应我们的需要,修复等等。。。很久以前有人认为编译这个项目是一个好方法,那就是拥有原始公司的预编译JAR,并且只在覆盖文件夹中编辑或添加我们需要的类,我们可以从一些zip文件中获得原始源代码。因此,当我们编译时,我们只编译编辑过的类,在类路径中使用原始jar,然后将新的或编辑过的类与原始jar连接起来,创建一个新的jar

问题似乎在于人们正在改变方法契约、编辑接口以及向抽象类添加抽象方法。编译时,我们不重新编译完整的源代码,只编译我们的源代码,因此编译器只检查重写源代码的契约一致性。 我已经开始注意到事情似乎正在破裂,因为旧类试图调用一个不再存在的方法,或者调用实现接口的部分版本的类的方法的类

我不能简单地将原始源代码与重写的源代码连接起来,因为有些类和java文件是在构建时自动生成的,所以我可以意外地修复一些真正没有损坏的东西。(我试过了,这就是我知道的原因)

有没有一种方法可以自动验证各种编译JAR类之间的契约一致性?在修复这些不一致之处之后,我将能够将两个源目录合并在一起,并在将来避免这个问题


共 (1) 个答案

  1. # 1 楼答案

    为什么不把所有的东西都汇编起来呢?(你确实有源代码)这样你至少会得到编译错误

    我想你没有任何测试来验证东西是否仍然有效。也许你也应该开始写这些。一个很好的开始是测试以前编写过的新代码。这样你就可以专注于测试正在变化的部件