有 Java 编程相关的问题?

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

哦,我需要在这里重建Java吗?

我有一个ClassA,它被我的许多组件和库用于项目的各个领域
现在我需要为这个类添加一个额外的成员,但由于其他领域不需要/使用它,所以我觉得不适合extend这个类
如果我将成员添加到ClassA而不是extending,我会有任何问题吗?一切都需要重建吗


共 (3) 个答案

  1. # 1 楼答案

    除非你现有的联系以及ClassA和其他类之间的交互中断,否则应该没有问题。但是,如果您更改了其他类使用的方法的签名,在查找旧版本的方法时可能会出现运行时错误,因为它已经不存在了

  2. # 2 楼答案

    添加新成员可以保持二进制兼容性,另请参见Java语言规范的Chapter 13. Binary Compatibility

    显然,您需要重建修改过的类,但不需要重建正在使用修改过的类的类

  3. # 3 楼答案

    如果你换了A级,显然需要重建。为了将影响降到最低,您可以扩展类A并在工作中使用子类。其他组件和库将继续使用您的类A,而您的代码现在应该引用已添加成员的子类

    同样,这取决于如何定义对象