# serialisierung funktioniert nur nach neuer instanzierung



## millinär (2. Sep 2006)

mein java weltbild wurde mal wieder erschüttert ich sitzte vor meinem PC und schreibe einen Code um auf einmal 
funktioniert die serialisierung nicht mehr

also (ich habe den code verkürzt weil der original code ist sehr verschachtelt:

```
class bla implements Serializable{
String bla2;
}
```

ich mache folgendes:

```
b=new bla();
b.bla2="asdf";
writeObject(b);
-------------------------------
System.out.println(((bla) readObject()).bla2);
```
die ausgabe ist folgende: asdf    
d.h. zurzeit stimmt noch alles

wenn ich  folgendes mache :


```
b=new bla();
b.bla2="asdf";
writeObject(b);
-------------------------------
System.out.println(((bla) readObject()).bla2);
------------------------
b=new bla();
b.bla2="dddd";
writeObject(b);
----------------------------------
System.out.println(((bla) readObject()).bla2);
```
kommt fogendes als ausgabe: asdf
                                            dddd
d.h. zur zeit ist immer noch alles so wie ich es erwartet habe aber:

```
b=new bla();
b.bla2="asdf";
writeObject(b);
-------------------------------
System.out.println(((bla) readObject()).bla2);
------------------------
//diesmal instanziere ich nicht neu sondern nehme das alte bla und ändere dort den string
b.bla2="dddd"; 
writeObject(b);
----------------------------------
System.out.println(((bla) readObject()).bla2);
```
kommt fogendes: asdf
                          asdf   

ich sitzte vor meinem PC und heule warum kommt nicht: asdf
                                                                                   dddd

bitte helft mir ich vertehe das nicht


----------



## millinär (2. Sep 2006)

juppee ich kenn jetzt zwar die lösung das problems ich muss 
ObjectOutputStream.reset();
machen 
aber so ganz verstehe ich das nicht die Objecte werden im OOs gespeichert aber wenn sich die objecte änderen ist das dem oos egal und er schreibt einfach die gespeicherte verion?


----------



## Guest (5. Jan 2007)

habe genau das gleiche problem, kannst du oder ein wissender erklären was da genau passiert? aus der java doc zu ObjectOutputStream reset() werd ich nich schlau


----------



## Wildcard (6. Jan 2007)

Der ObjectOutputStream 'merkt' sich alle serialisierten Objekte und verwendet sie wieder.
reset oder writeUnshared


----------

