Serialisierungsproblem

Diskutiere Serialisierungsproblem im Allgemeine Java-Themen Forum; Hi, mir fällt da gerade etwas ein wegen dem Serialisieren, als ich mein Programm etwas erweitert habe.. und zwar: Derzeit serialisiere ich das...

  1. Kababär
    Kababär Aktives Mitglied
    Hi,

    mir fällt da gerade etwas ein wegen dem Serialisieren, als ich mein Programm etwas erweitert habe.. und zwar:
    Derzeit serialisiere ich das Objekt "Modul". Eine Liste von Modulen wird beim Programmstart deserialisiert und in einer TableView angezeigt. Jetzt habe ich allerdings noch ein weiteres Attribut dem Objekt Modul hinzugefügt und somit lässt es sich nicht mehr deserialisieren.
    Heißt ich müsste ja jetzt das serialisierte Objekt auf der Festplatte löschen (?), aber dann wären ja die Daten weg. Weniger problematisch ist es bei meiner Konfig-Datei, da, falls es Probleme gibt diese zu laden, einfach eine "Default-Konfig-Datei" mit Standardwerten erstellt wird.

    Wie kann ich also diese Daten "retten" falls ich mal auf die Idee komme: "Hey, das Attribut wäre auch nicht verkehrt!"?

    Modul implementiert "Externalizable" und readExternal bzw writeExternal wurden überschrieben (einfach getter/setter in den ObjectInput/ObjectOutput gesetzt).

    Jemand eine Idee?
     
  2. Vielleicht hilft dir das kostenlose Training weiter --> (hier klicken)
  3. JCODA
    JCODA Aktives Mitglied
  4. AndyJ
    AndyJ Mitglied
    Das geaenderte Object ist nicht mehr kompatibel mit der vorherigen Version, weil die Versionsnummer eine andere ist. Ausser du hast eine angegeben:

    private static final long serialVersionUID = 84356L;

    Wenn dieses Feld fehlt, generiert Java eine Versiosnnummer einfach aus dem Quellcode. Wenn sich der aendert, ist auch die Nummer eine andere und die Objekte sind nicht mehr kompatibel.

    Es gibt aber auch andere Moeglichkeiten, Daten zu serialisieren, z.B. JAXB, JSON oder JABB (https://github.com/a-genius/jabb). Letzteres habe ich fuer ein Projekt geschrieben, wo staendige Aenderungen der Objekte normal sind und genau dein Problem auftrat.

    Andy
     
  5. Kababär
    Kababär Aktives Mitglied
    Die UID bleibt die gleiche, allerdings sagt er, dass die Versionen nicht übereinstimmen..
    JAXB habe ich schon implementiert (als Notlösung, man muss vorher erst das XML exportieren).

    Dazu hatte ich auch die Idee noch JSON zu verwenden, aber bin da noch totaler Neuling.
    Das Schreiben klappt aber soweit. Ich packe dazu alle Module in ein JSONArray und schreibe das dann.
    Nur die Formatierung kriege ich nicht so hin, alles steht in einer Zeile in der Datei.
    (Aber das ist nicht tragisch soweit der Code funktioniert :D)
     
  6. AndyJ
    AndyJ Mitglied
    Poste doch mal deine Klasse.
     
  7. thecain
    thecain Aktives Mitglied
    Da fehlt einfach noch ein pretty print
    Code (Java):

    System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object));
     
  8. Kababär
    Kababär Aktives Mitglied
    Ja das habe ich auch schon gemerkt mittlerweile! Dieses json, gson, jackson hat mich ganz schön verwirrt.
     
  9. Schau dir jetzt hier den Kurs an und lerne Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)
Die Seite wird geladen...

Serialisierungsproblem - Ähnliche Themen

Serialisierungsproblem
Serialisierungsproblem im Forum Allgemeine Java-Themen
Serialisierungsproblem bei JAX-RS
Serialisierungsproblem bei JAX-RS im Forum SOA
Serialisierungsproblem bzw. Heap Problem
Serialisierungsproblem bzw. Heap Problem im Forum Allgemeine Java-Themen
Thema: Serialisierungsproblem