<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Java - Object Serialization</title>
    <link>http://forum.geizhals.at/feed.jsp?id=489950</link>
    <description>Geizhals-Forum</description>
    <item>
      <title>Re(4): Java - Object Serialization</title>
      <link>http://forum.geizhals.at/t489950,4063026.html#4063026</link>
      <description>Also A ist bei mir schon etwas komplizierter aufgebaut, daher scheint mir die Version mit dem Überschreiben der Methoden recht unkomfortabel. Eigentlich soll eh (fast) alles serialisiert werden.&lt;br&gt;&lt;br&gt;Mittlerweile habe ich es daher wie folgt gelöst. A ist nun ebenfalls Serializable, wobei ein paar Streams als transient markiert wurden. Diese sind - wenn das Objekt geladen wird, sowieso nicht mehr von Bedeutung &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Auf jeden Fall Danke für die Erklärung mit dem leeren Konstruktor. Das bringt etwas Licht in die Sache &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Wed, 11 Apr 2007 09:31:19 GMT</pubDate>
      <guid>http://forum.geizhals.at/t489950,4063026.html#4063026</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-04-11T09:31:19Z</dc:date>
    </item>
    <item>
      <title>Re(3): Java - Object Serialization</title>
      <link>http://forum.geizhals.at/t489950,4063011.html#4063011</link>
      <description>Also ich habe das jetzt noch einmal überprüft nachdem ich mit einem Freund darüber gesprochen habe. Er meinte das man das nicht so sehen kann, das B "nur" die Erweiterung von A ist sonder eigentlich ist B gleich A plus einigen Erweiterungen die in B implementiert sind. Diese Art von Anschauung wäre eigentlich richtig wenn ich da an meinen OOP Unterricht erinnere. &lt;br&gt;&lt;br&gt;Ein Blick in die Javadoc verrät den Grund jedoch warum myInt nicht serialisiert wird:&lt;br&gt;&lt;i&gt;During deserialization, the fields of non-serializable classes will be initialized using the public or protected no-arg constructor of the class. A no-arg constructor must be accessible to the subclass that is serializable. The fields of serializable subclasses will be restored from the stream.&lt;/i&gt;&lt;br&gt;&lt;br&gt;Kurz gesagt alle geerbten Variablen von einer non-serializeable Oberklasse werden nicht serialisiert sondern bei der Deserialisierung über den Default-Konstruktor initialisiert. &lt;br&gt;&lt;br&gt;Du könntest jedoch die beiden Methoden überschreiben, um das Problem zu lösen:&lt;br&gt;&lt;br&gt; private void writeObject(java.io.ObjectOutputStream out)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throws IOException&lt;br&gt; private void readObject(java.io.ObjectInputStream in)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; throws IOException, ClassNotFoundException;&lt;br&gt;&lt;br&gt;Oder du könntest A Serializable machen. Dadurch ist B auch serializable und die Felder von A werden genau so serialisiert. Wenn sonst niemand von A erbt, bzw. alles von A erbt Serializeable sein soll dann wäre das imo die beste möglichkeit. Oder du machst dir eine dummy Variable die eigentlich nur den Inhalt von myInt hat und im Default Konstruktor initialisierst du myInt dann mit der dummy Variable.&lt;br/&gt;</description>
      <pubDate>Wed, 11 Apr 2007 09:21:52 GMT</pubDate>
      <guid>http://forum.geizhals.at/t489950,4063011.html#4063011</guid>
      <dc:creator>Norret</dc:creator>
      <dc:date>2007-04-11T09:21:52Z</dc:date>
    </item>
    <item>
      <title>Re(2): Java - Object Serialization</title>
      <link>http://forum.geizhals.at/t489950,4060680.html#4060680</link>
      <description>Ok, danke - das deckt sich mit meinen Erfahrungen &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br/&gt;</description>
      <pubDate>Tue, 10 Apr 2007 08:47:56 GMT</pubDate>
      <guid>http://forum.geizhals.at/t489950,4060680.html#4060680</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-04-10T08:47:56Z</dc:date>
    </item>
    <item>
      <title>Re: Java - Object Serialization</title>
      <link>http://forum.geizhals.at/t489950,4060355.html#4060355</link>
      <description>Imo nicht, da nur die "Erweiterung" von A, also B Serializeable ist, myInt aber zu A gehört.&lt;br/&gt;</description>
      <pubDate>Tue, 10 Apr 2007 07:03:05 GMT</pubDate>
      <guid>http://forum.geizhals.at/t489950,4060355.html#4060355</guid>
      <dc:creator>Norret</dc:creator>
      <dc:date>2007-04-10T07:03:05Z</dc:date>
    </item>
    <item>
      <title>Re(2): Java - Object Serialization</title>
      <link>http://forum.geizhals.at/t489950,4059522.html#4059522</link>
      <description>Soda .. danke für dein Post, die Seite ist gut &lt;img src="smile.gif" width="16" height="19" align="absmiddle" alt=":)"/&gt;&lt;br&gt;&lt;br&gt;Mittlerweile hab ichs konkret selber schon ausprobiert, anscheinend muss auch die Basisklasse als Serializable markiert werden.&lt;br&gt;Das hat insofern Probleme gemacht, zumal die ein paar Objekte beinhaltet hat, die nicht serialisiert werden konnten. Diese habe ich daraufhin als transient markiert - dürfte eigentlich keine Probleme machen - also falls du es mal brauchst &lt;img src="zwinker.gif" width="16" height="19" align="absmiddle" alt=";)"/&gt;&lt;br&gt;&lt;br/&gt;</description>
      <pubDate>Mon, 09 Apr 2007 16:43:55 GMT</pubDate>
      <guid>http://forum.geizhals.at/t489950,4059522.html#4059522</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-04-09T16:43:55Z</dc:date>
    </item>
    <item>
      <title>Java - Object Serialization</title>
      <link>http://forum.geizhals.at/t489950,4059482.html#4059482</link>
      <description>So .. mal wieder meine Lieblingssprache &lt;img src="crazy.gif" width="16" height="19" align="absmiddle" alt="%-)"/&gt;&lt;br&gt;&lt;br&gt;Damit ein Objekt anzeigt dass es Serialisiert werden kann muss es java.io.Serializable implementieren .. soweit so gut. Was ist nun aber mit:&lt;br&gt;&lt;br&gt;public abstract class A {&lt;br&gt;&amp;nbsp;&amp;nbsp;private int myInt;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;public int getMyInt() { return myInt; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;public class B extends A implements Serializable {&lt;br&gt;&amp;nbsp;&amp;nbsp;private int bla;&lt;br&gt;&amp;nbsp;&amp;nbsp;public int getBla() { return bla; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;Soda ... Weiss nun jemand, wenn ich die Klasse B serialisiere (mittels ObjectOutputStream), ob dann auch automatisch die Felder von A serialisiert wird, oder wirklich nur B?&lt;br/&gt;</description>
      <pubDate>Mon, 09 Apr 2007 15:47:10 GMT</pubDate>
      <guid>http://forum.geizhals.at/t489950,4059482.html#4059482</guid>
      <dc:creator>Somnatic</dc:creator>
      <dc:date>2007-04-09T15:47:10Z</dc:date>
    </item>
  </channel>
</rss>
