我有ClassA
在项目的各个方面使用了我的许多组件和库
现在我需要在这个类中添加一个额外的成员,但由于它不需要/被其他区域使用,因此对extend
类来说感觉不合适。
如果我将该成员添加到ClassA
而不是extending
,我会遇到任何问题吗?一切都需要重建吗?
答案 0 :(得分:5)
添加新成员可保留二进制兼容性,另请参阅Java语言规范的Chapter 13. Binary Compatibility。
显然你需要重建修改后的类,而不是使用修改过的类的类。
答案 1 :(得分:1)
除非您现有的联系人和ClassA与其他类之间的互动BREAK,否则应该没有问题。但是,如果您更改其他类使用的方法的签名,则在查找旧版本的方法时可能会遇到运行时错误,因为它不再存在。
答案 2 :(得分:-1)
如果您更改了A类,显然需要重建。为了最大限度地减少影响,您可以扩展A类并使用子类进行工作。其他组件和库将继续使用您的A类,而您的代码现在应该引用具有添加成员的sublcass。
同样,这取决于您如何定义对象。