2012-07-03 17 views
5

Per qualche motivo i miei osservatori non vengono avvisati quando chiamo i metodi notifyObserver, utilizzando gli oggetti java.util.Observable:Java Observer modello non notificare

Ecco il mio oggetto osservabile:

public class ProjectManager extends Observable 
{ 
... 
public void updateProjects(String project, String pack, String source, String ARN) 
{ 
    ... 
if(newSource) 
    { 
    tempPack.add(tempSource); 
    System.out.println("Notify observers: " + this.countObservers()); 
    this.notifyObservers(); 
    } 
     ... 
     } 

posso vedere dalla mia uscita che l'osservatore viene aggiunto ma non viene notificato.

e il mio oggetto osservatore guarda in questo modo:

public class IDE implements Observer 
{ 

@Override 
public void update(Observable o, Object arg) { 

    System.out.println("Notified"); 

} 

Per qualche strana ragione l'oggetto osservabile non viene notificato a tutti. Sto facendo qualcosa di sbagliato qui?

risposta

13

È necessario setChanged prima di notifyObservers

+4

+1. Un altro motivo per non apprezzare l'implementazione 'Observable' di Java. –

+0

bit di un trucchetto importante ma immagino che possa avere senso da un punto di vista transazionale. –

Problemi correlati