ObjectOutputStream - nicht Serialisierbare Member?

Hey Leute,

wie verhält sich der java.io.ObjectOutputStream, wenn eine Klasse zwar java.io.Serializable implementiert, diese aber Membervariablen enthält, die nicht serialisierbar sind (und auch nicht durch transient oder static&final ausgeschlossen werden)?

Ein Beispiel wäre ein Class - Object.

Danke

hallo

der serialisierungsmechanismus von java ist ziemlich fehlertolerant. alle member, die sinnvoll serialisiert werden könnne, werden serialisiert. alles andere wird ignoriert. auf der gegenseite beim deserialisieren werden alle member, die in die zielklasse passen, deserialisiert (sofern möglich) alles andere wird ignoriert. kommt am ende ein lebensfähiges objekt raus, hat das ganze geklappt. ansonsten bekommt man eine unmarshal-exception.

deutlich wird dass, wenn man ältere versionen eines objekts in einer neuere objektklasse deserialisiert: member, die es früher noch nicht gegeben hat, werden leer gelassen. member, die es nun nicht mehr gibt, werden ignoriert (nur sofern beide objekte die selbe serialversionid haben!).

ob da was sinnvolles rauskommt, muss der programmierer entscheiden. einfach so das serializeable-interface zu implementieren, ohne sich dazu was zu denken, ist halt gefährlich.

lg
erwin