2012-10-11 63 views
1

我有一個ClassA這是我在項目的各個領域使用我的許多組件和庫。
現在我需要添加一個額外的成員到這個類中,但由於它不會被其他區域需要/使用,所以它不適合extend這個類。
如果我將該成員添加到ClassA而不是extending我會有什麼問題嗎?一切都需要重建嗎?我需要在這裏重建Java嗎?

+0

您的classpath是否包含'ClassA'的兩個版本? – 2012-10-11 08:32:19

+0

@Tichodroma:沒有。 – Jim

回答

5

添加新成員可保留二進制兼容性,另請參閱Java語言規範的Chapter 13. Binary Compatibility

顯然你需要重建修改的類,但不是使用修改後的類。

1

除非您現有的聯繫人和ClassA與其他類之間的交互BREAK,否則應該沒有問題。但是,如果您更改其他類使用的方法的簽名,則可能會在找到舊版本的方法時遇到運行時錯誤,因爲它不再存在。

+0

除非他們*破*,你的意思是。 – EJP

-1

如果你改變你的A類,顯然需要重建。爲了最大限度地減少影響,您可以擴展A類並使用子類來完成工作。其他組件和庫將繼續使用您的類A,而您的代碼現在應該引用具有添加成員的sublcass。

同樣,這取決於你如何定義你的對象。

+0

不正確,請參閱其他答案和引用。 – EJP