1

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

4

3 回答 3

5

添加新成员可保留二进制兼容性,另请参见第 13 章。Java 语言规范的二进制兼容性。

显然,您需要重建修改后的类,而不是使用修改后的类。

于 2012-10-11T08:39:12.653 回答
1

除非您现有的 ClassA 和其他班级之间的联系和互动 BREAK,否则应该没有问题。但是,如果您更改其他类使用的方法的签名,则在定位旧版本的方法时可能会出现运行时错误,因为它不再存在。

于 2012-10-11T08:35:10.450 回答
-1

如果您更改 A 级,显然需要进行重建。为了尽量减少影响,您可以扩展 A 类并将子类用于您的工作。其他组件和库将继续使用您的 A 类,而您的代码现在应该引用具有添加成员的子类。

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

于 2012-10-11T08:37:24.003 回答