Dasselbe Event zweimal aufgefangen?

Status
Nicht offen für weitere Antworten.

Ralf1007

Mitglied
Hallo.

Mein Problem ist folgendes: Ich werfe in meinem Code ein Event aber der Observer erhält dieses zweimal...genau dasselbe. IDs stimmen überein, also sind die Events auch echt identisch. Warum bekommt mein Observer zweimal dasselbe Event, wenn ich es ihm doch nur einmal gebe? Kennt ihr das Problem?
 
Mmh gute Idee...ich gucke grad danach. Dürfte eigentlich nicht sein aber was heißt das schon 🙂

Danke für den Tip, ich muss erstmal schauen, wo das eventuell passieren könnte. Habt ihr eventuelle Ausweichideen?
 
🙂 Ok, danke. Dann werde ich solange suchen, bis ich die 2. Stelle gefunden habe. Soweit ich sehen kann, wird die 1. Stelle wo ich den Listener registriere nur einmal aufgerufen.

Danke für die Hilfe.
 
Ralf1007 hat gesagt.:
Danke für den Tip, ich muss erstmal schauen, wo das eventuell passieren könnte. Habt ihr eventuelle Ausweichideen?
Ja, implementiere die equals-Methode im Observer.

Ein bereits registrierter Observer wird nicht erneut in Observable registriert, wenn er bereits registriert ist.
es sei dann, dass er nicht als der gleiche erkannt wird. ( !Vector#contains(übergebenerObserver) )

Manchmal lohnt ein Blick auf den Sourcecode von Java.
 
Anonymous hat gesagt.:
Ralf1007 hat gesagt.:
Danke für den Tip, ich muss erstmal schauen, wo das eventuell passieren könnte. Habt ihr eventuelle Ausweichideen?
Ja, implementiere die equals-Methode im Observer.

Ein bereits registrierter Observer wird nicht erneut in Observable registriert, wenn er bereits registriert ist.
es sei dann, dass er nicht als der gleiche erkannt wird. ( !Vector#contains(übergebenerObserver) )

Manchmal lohnt ein Blick auf den Sourcecode von Java.
OK, ich zitiere mich selbst und erkläre es für Quatsch. :wink:
Wenn du nicht gerade mehrere Instanzen deines Observers am Laufen hast, dann wird eine betstimmte
Instanz nie mehrfach eingefügt (Default-Implementierung von equals macht Referenzvergleich)

Falls du es nicht findest, lass mal etwas Code sehen. Vielleicht fällt dann jemandem auf, was fault ist.
Ansonsten hilft auch ein Debugger...
 
Ich sehe hier beim Debuggen, dass die Liste
Code:
 changeListener
des zu beobachtenden Objektes zum interessierenden Zeitpunkt nur die Größe eins hat und dort auch nur der Observer drin steht. Somit ist er auch nur einmal registriert und kann nur einmal reagieren. Tut er aber nicht.

Übersehe ich etwas?
 
Was ist das für ein ChangeListener? PropertyChangeListener?
Man kann nur raten, wenn man den Code nicht sieht.

Versuche mal das hier im Code des Observers

new Throwable().printStackTrace()

und schau dir den Ursprung des Events.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben