Legen Sie in XStream den Standardwert für Felder fest, die nicht in XML enthalten sind

Gibt es eine Möglichkeit, einen Konverter oder eine Operation zu erstellen, die nach jeder einzelnen Konvertierung ausgeführt wird? Als Kontext versuche ich, Standardwerte für Felder auszufüllen, die nicht in meinem XML-Code enthalten sind, um die Abwärtskompatibilität zu gewährleisten, wenn sich mein Datenmodell ändert. Wenn ich zum Beispiel dieses Objekt hätte:

class A {
    private String b;
    private String c;
    private String d;
}

und mein XML war so etwas wie:

<a>
 <b>b</b>
 <d>d</d>
</a>

Ich möchte, dass mein XML-Import weiß, dass es einen Standardwert für das Feld gibtc das ist"c" und setzen Sie es aufA so wie. Dies sollte eine generische Operation sein, zu der ich jedem Feld eines sehr komplexen Diagramms Standardwerte hinzufügen kann. Wenn es eine Möglichkeit gäbe, eine Funktion nach jeder Konvertierung auszulösen, könnte das aktuelle Objekt mit einer Karte von Objekten verglichen werden, für die ich einen Standardwert festlegen möchte.

Beachten Sie auch, dass die Verwendung von readResolve / readObject keine Option zu sein scheint, da 1. readObject () bei mir nie funktioniert hat und 2. readResolve das Feld mit dem Standardwert überschreibt, selbst wenn es tatsächlich in der XML enthalten ist . Bitte lassen Sie mich wissen, wenn meine Annahmen hier falsch sind.

Bearbeiten :: Ich habe diesen verwandten Thread in der Benutzer-Mailingliste gefunden:http://article.gmane.org/gmane.comp.java.xstream.user/4619/match=default+value

und es scheint, als wäre die einzige vorgeschlagene Lösung die VerwendungreadResolve() was ich bereits sagte, war keine gültige Lösung.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage