2012-07-03 13 views
5

Por alguna razón mis observadores no están siendo notificados cuando llamo los métodos notifyObserver, utilizando los objetos java.util.Observable:patrón Observador de Java no notificar

aquí es mi objeto observable:

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(); 
    } 
     ... 
     } 

Puedo ver por mi salida que el observador se está agregando pero no se está notificando.

y mi objeto observador ve así:

public class IDE implements Observer 
{ 

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

    System.out.println("Notified"); 

} 

Por alguna extraña razón el objeto observable no se notifica en absoluto. ¿Estoy haciendo algo mal aquí?

Respuesta

13

Necesitas setChanged antes notifyObservers

+4

1. Otra razón para disgustar la implementación 'Observable' de Java. –

+0

un poco importante, pero supongo que podría tener sentido desde un punto de vista transaccional. –

Cuestiones relacionadas