我試圖在我的代碼中使用observable,並且存在這個問題給我帶來困難。對Observable的兩種不同方法調用的觀察者數量不一致
public class observeState extends Observable
{
public void setSelectedTransaction(int idx)
{
if (selectedTransaction != idx)
{
this.selectedTransaction = idx;
setChanged();
notifyObservers("setSelectedTransaction");
System.out.println("Observers : "+this.countObservers());
}
}
public void setLog(Log log)
{
if(theLog != log) {
theLog = log;
System.out.println(theLog.getLogTransactions().size() + "setLog");
setChanged();
notifyObservers("setLog");
System.out.println("Observers : "+this.countObservers());
}
}
有兩名觀察員觀察此觀察到的類,它併發出notifyObservers
當setSelectedTransaction
方法被調用的測試線「觀察員:2」。然而,下一個方法setLog
似乎沒有觀察者給出「觀察者:0」。我不認爲我只能使用可觀察的方法。
也許'setChanged()'做了一些奇怪的事情?另外,請仔細檢查「this」是否指向您認爲它指向的內容。 – keyser
謝謝您的意見凱澤:d –