T
tuxedo
Gast
Hallo,
stehe gerade vor einem kleinen Problemchen und Frage mich ob es da eine elegante Lösung für gibt:
Ich habe einen RMI-Server der eine "List" mit Objekten bereit hält. Der Server kennt dir Methode "getList" die der Client aufrufen kamm um die Liste zu erhalten.
Die Liste besteht aus Objekten gemäß Interface B.
Klasse A implementiert Interface B.
Klasse A enthält jedoch Elemente und Konstrukte die sich nicht serialisieren lassen (Streams, Threads und weiterer "Krempel").
Dem Client reicht eigentlich das Interface B. Hier sind auch keine "nicht-serialisierbaren" Dinge mit drin.
So. Jetzt ist natürlich "doof", dass ich jede Menge not serializable Exceptions bekomme, wenn der Server versucht die Liste mit Objekten gemäß Interface B, aber zugrundeliegender Klasse A zu verschicken.
Leuchtet mir auch ein. Java erstellt da ja kein neues Objekt das NUR Interface B erfüllt.
Aber wie stell ich's jetzt am geschicktesten an, dass ich ein Objekt gemäß Interface B verschicke ohne die Exceptions zu haben?
Mein erster Ansatz wäre in Klasse A eine Methode einzubauen, meintwegen getDataWithTypeOfB(), die mir eine Instanz des zu verschickende Objekt zurückliefert und keine "nicht-serialisierbaren" Daten enthält.
Fällt jemand noch ein besserer Weg ein?
- Alex
stehe gerade vor einem kleinen Problemchen und Frage mich ob es da eine elegante Lösung für gibt:
Ich habe einen RMI-Server der eine "List" mit Objekten bereit hält. Der Server kennt dir Methode "getList" die der Client aufrufen kamm um die Liste zu erhalten.
Die Liste besteht aus Objekten gemäß Interface B.
Klasse A implementiert Interface B.
Klasse A enthält jedoch Elemente und Konstrukte die sich nicht serialisieren lassen (Streams, Threads und weiterer "Krempel").
Dem Client reicht eigentlich das Interface B. Hier sind auch keine "nicht-serialisierbaren" Dinge mit drin.
So. Jetzt ist natürlich "doof", dass ich jede Menge not serializable Exceptions bekomme, wenn der Server versucht die Liste mit Objekten gemäß Interface B, aber zugrundeliegender Klasse A zu verschicken.
Leuchtet mir auch ein. Java erstellt da ja kein neues Objekt das NUR Interface B erfüllt.
Aber wie stell ich's jetzt am geschicktesten an, dass ich ein Objekt gemäß Interface B verschicke ohne die Exceptions zu haben?
Mein erster Ansatz wäre in Klasse A eine Methode einzubauen, meintwegen getDataWithTypeOfB(), die mir eine Instanz des zu verschickende Objekt zurückliefert und keine "nicht-serialisierbaren" Daten enthält.
Fällt jemand noch ein besserer Weg ein?
- Alex