Huhu Community 
folgendes Szenario: sagen wir mal, ich habe eine Klasse A, eine Klasse B und eine Klasse Datum, nur als Beispiel.
A ist Observable und macht irgendwas. B implementiert Observer und beobachtet A.
Jetzt verändert A irgendwas an seinen Exemplarvariablen und macht dabei natürlich brav setChanged() und notifyObservers().
Es ändert allerdings immer nur ein in sich gespeichertes Datum, weshalb im notify das geänderte Datum übergeben wird.
Also notifyObservers(getNeuesDatum())
B kann auch immer nur ein Datum in Form eines Exemplars der Klasse Datum verarbeiten.
d.h. B's update(Observer o, Object arg)-Methode, die in Folge des notifyObservers aufgerufen wird, verarbeitet auch immer nur ein Datum.
Dann muss natürlich die Verarbeitung so aussehen: verarbeiteMal( (Datum)arg )
Denn arg ist ja nur vom Typ Object, um spezifisch das Datum verarbeiten zu können, obwohl in arg ja eine Referenz auf ein Exemplar von Datum gehalten wird, muss ja ein Typecast her um zuzusichern, dass es sich bei arg dann auch wirklich um ein Datum handelt.
Was würde jetzt passieren, wenn aus Versehen von notifyObservers doch kein Datum übergeben wird, sondern irgendwas anderes. Ne NullReference oder halt irgendwas ganz anderes, kein Typ Datum?
Was macht dann mein Typecast mit arg?
Was wäre der schönste Weg, um zu verhindern, dass da was schief läuft?
Könnte ich eine Exception bauen, die dann aufgerufen wird, wenn arg auf kein Exemplar von Datum zeigt z.B.?
Also quasi checken, ob arg ne Instanz von Datum ist und wenn nein, dann Exception werfen?
Oder wie wäre der praktikabelste Weg dort?
Grüße & Danke im Voraus
ascer
folgendes Szenario: sagen wir mal, ich habe eine Klasse A, eine Klasse B und eine Klasse Datum, nur als Beispiel.
A ist Observable und macht irgendwas. B implementiert Observer und beobachtet A.
Jetzt verändert A irgendwas an seinen Exemplarvariablen und macht dabei natürlich brav setChanged() und notifyObservers().
Es ändert allerdings immer nur ein in sich gespeichertes Datum, weshalb im notify das geänderte Datum übergeben wird.
Also notifyObservers(getNeuesDatum())
B kann auch immer nur ein Datum in Form eines Exemplars der Klasse Datum verarbeiten.
d.h. B's update(Observer o, Object arg)-Methode, die in Folge des notifyObservers aufgerufen wird, verarbeitet auch immer nur ein Datum.
Dann muss natürlich die Verarbeitung so aussehen: verarbeiteMal( (Datum)arg )
Denn arg ist ja nur vom Typ Object, um spezifisch das Datum verarbeiten zu können, obwohl in arg ja eine Referenz auf ein Exemplar von Datum gehalten wird, muss ja ein Typecast her um zuzusichern, dass es sich bei arg dann auch wirklich um ein Datum handelt.
Was würde jetzt passieren, wenn aus Versehen von notifyObservers doch kein Datum übergeben wird, sondern irgendwas anderes. Ne NullReference oder halt irgendwas ganz anderes, kein Typ Datum?
Was macht dann mein Typecast mit arg?
Was wäre der schönste Weg, um zu verhindern, dass da was schief läuft?
Könnte ich eine Exception bauen, die dann aufgerufen wird, wenn arg auf kein Exemplar von Datum zeigt z.B.?
Also quasi checken, ob arg ne Instanz von Datum ist und wenn nein, dann Exception werfen?
Oder wie wäre der praktikabelste Weg dort?
Grüße & Danke im Voraus
ascer