我必须对一个特定类进行补丁,我们将其称为 Foo。我修复了该问题,对其进行了测试,并将编译后的 Foo 类发布到补丁文件夹中,并将其发布到 QA 服务器。问题是,我忘记了我对 Foo 中的方法进行了更改。该方法调用服务器上当前版本中不存在的另一个类(称为 Widget)的新方法。当前服务器上代码中的任何位置都没有调用 Foo 中的方法。
摘要:
将 Foo 的编译版本发布到服务器,该版本具有未调用的公共(public)方法,该方法调用 Widget 中不存在于该服务器上的方法。
这会破坏什么吗?我在 QA 上测试了代码,一切似乎都很好。
请注意,我知道不建议以这种方式修补;我们实际上正在升级项目的构建和部署机制,以避免今后出现此类问题。
谢谢
最佳答案
如果您不调用或尝试加载您的方法(使用反射),则没有理由中断。
编辑:我完全不确定使用反射实例化方法会破坏某些内容。
关于Java 编译类中未调用的方法调用了缺失的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12411070/