코드에서 observable을 사용하려고하는데이 문제로 인해 어려움을 겪고 있습니다.Observable에 대한 두 개의 서로 다른 메서드 호출에서 Observers 수가 일치하지 않습니다.
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());
}
}
이 관찰 클래스를 관찰 두 관찰자가 있으며 setSelectedTransaction
방법은 테스트 라인 "관찰자 : 2"로 호출 될 때 그것은 notifyObservers
을 보내 않습니다. 그러나 다음 방법 setLog
에는 "Observers : 0"을주는 옵저버가없는 것 같습니다. 내가 관찰 가능한 방법을 한 번만 사용할 수 있다고 생각하지 않습니다.
아마도'setChanged()'가 이상한 일을하고 있을까요? 또한, 'this'가 당신이 가리키고 있다고 생각하는 것을 가리키고 있는지 다시 한번 확인하십시오. – keyser
귀하의 의견에 감사드립니다. Keyser : D –