Suche Ratschlag zu Objektserialisierung bei ObjectStreams

JensArpe

Mitglied
Hey,

ich habe eine Server/Client Architektur, bei der ich Objekte per ObjectInput- bzw. ObjectOutputStream übertrage. Klappt auch alles wunderbar..

Allerdings, wenn ich ein Objekt übertragen will, das in etwa so aussieht:

Java:
...
public class FehlerListe implements Serializable {
private ArrayList<Fehler> stringArray = new ArrayList<Fehler>();
}
...

Java:
...
public class Fehler implements Serializable {
private int i = 0;
}
...

Also wenn das Objekt eine Liste mit Objekten enthällt, kommt am Ende zwar das Objekt an, eine Liste gibts auch, aber die ist leer. (Oder die Objekte sind in der Liste vorhanden und ohne Werte? Weiß ich nimmer so genau :) ist aber auch egal) Und das obswohl der Fehler an sich auch serializable ist.

Ich habe das Problem jetzt so gelöst:


Java:
...
public class FehlerListe implements Serializable {
private ArrayList<String> stringArray = new ArrayList<String>();
}
...

Ich wandele also meinen Fehler beim Server in einen String um, übertrage das ganze dann und parse es beim Client wieder.


So jetzt der eigenltichen Frager:

Ist das eine gute Lösung? Geht es besser?

PS: bedenkt bitte, das das nur ein Bsp. ist. Ich MUSS Objekte übertragen.. Also sagt nicht, das wenn ich nur nen int übertrage es einfacher geht.

Danke im Vorraus
 
S

SlaterB

Gast
eine ArrayList<Fehler> zu übertragen sollte genauso gehen wie eine ArrayList<String>,
ob für sich oder als Attribut in einem anderen Objekt, wobei du gerne beides einzeln testen kannst,

wenn es Probleme gibt, dann doch ruhig etwas kontreter ohne 'Weiß ich nimmer so genau' usw.,

ein intereressantes Problem ist die Mehrfachübertragung von Objekten,
beim zweiten Mal wird bei gleichem Stream der alte Stand übertragen, auch wenn sich interne Attribute ändern,
evtl. abhängig von hashcode()/ equals(),
reset() beim Stream hilft dagegen in jedem Fall
 

JensArpe

Mitglied
Danke erst mal für die Antwort...

Das mit der Mehrfachübertragung sollte kein Problem sein, da ich eigentlich nie das selbe Objekt 2mal übertrage sondern immer neue Objekte generiere. Aber ich werds mal im Hinterkopf behalten.

Ich versuch das ganze jetzt gleich nochmal und editiere dann hier das Ergebniss rein :)
 

Ähnliche Java Themen


Oben