即使現在,讓我們說我有一個自定義對象在Java觀察:如何當一個自定義對象改變它的擴展
public class TestObject {
private int value = 0;
public TestObject(int value) {
this.value = value;
}
public void increaseValue() {
value++;
}
}
現在我想,當這個對象被修改就知道了。或者更具體地說,我想知道它的任何字段何時發生變化(在這種情況下,值)。此外,如果我擴展了TestObject,我仍然希望能夠監聽可能發生在該對象上的任何字段更改,包括如果該更改是針對新字段的新字段。
我已經做了一些研究,發現了各種各樣的隨java一起發佈的聽衆,但他們似乎都失敗了,他們要求您在方法結束時向聽衆發出呼叫。例如,increaseValue()也必須通知所有偵聽器TestObject的值已更改。顯然,這對我來說不起作用,因爲可擴展性是必須的,而且我不知道如果從該對象繼承的人將遵守他們必須通知偵聽器的要求。更不用說,編寫每個增變器方法的代碼似乎很痛苦,如果有任何光線可以在這個問題上得到解決,我們將不勝感激。
看到我的迴應 - 生產方面將解決必須使用代理的問題。 –
儘管這看起來像一個可能很複雜的解決方案,但它與我所尋找的內容大致相符。 – Zargoon