哦,我需要在这里重建Java吗?
我有一个ClassA
,它被我的许多组件和库用于项目的各个领域
现在我需要为这个类添加一个额外的成员,但由于其他领域不需要/使用它,所以我觉得不适合extend
这个类
如果我将成员添加到ClassA
而不是extending
,我会有任何问题吗?一切都需要重建吗
你可以在下面搜索框中键入要查询的问题!
我有一个ClassA
,它被我的许多组件和库用于项目的各个领域
现在我需要为这个类添加一个额外的成员,但由于其他领域不需要/使用它,所以我觉得不适合extend
这个类
如果我将成员添加到ClassA
而不是extending
,我会有任何问题吗?一切都需要重建吗
# 1 楼答案
除非你现有的联系以及ClassA和其他类之间的交互中断,否则应该没有问题。但是,如果您更改了其他类使用的方法的签名,在查找旧版本的方法时可能会出现运行时错误,因为它已经不存在了
# 2 楼答案
添加新成员可以保持二进制兼容性,另请参见Java语言规范的Chapter 13. Binary Compatibility
显然,您需要重建修改过的类,但不需要重建正在使用修改过的类的类
# 3 楼答案
如果你换了A级,显然需要重建。为了将影响降到最低,您可以扩展类A并在工作中使用子类。其他组件和库将继续使用您的类A,而您的代码现在应该引用已添加成员的子类
同样,这取决于如何定义对象