2009-10-06 7 views
7

Ich habe ein komplexes Objekt, das von der LCDS DataServices-Datenverwaltung verwaltet wird und mit benutzerdefinierten Assemblern erstellt/aktualisiert usw. wird. Die überwiegende Mehrheit der Objekthierarchie wird korrekt serialisiert/deserialisiert, aber ich stolperte, wenn es darum geht, unveränderliche Java-Klassen zu serialisieren.Serialisierung unveränderlicher Java-Klassen in Actionscript mit LCDS

in einer Java-Welt nur würde ich die Java-writeReplace und readResolve Methoden verwenden, da dies ausgezeichnete Blog beschreibt: http://lingpipe-blog.com/2009/08/10/serializing-immutable-singletons-serialization-proxy/

Dies ist, wie ich ursprünglich meine Java-Klasse schrieb, livecycle erwarten, dass die writeReplace Methode aufrufen und ordnungsgemäß ersetzen die unveränderliche Klasse mit einer veränderbaren für die Serialisierung. Es scheint jedoch, dass lcds nichts von der writeReplace-Methode weiß und nur readExternal/writeExternal aufruft, was readResolve und writeReplace ignoriert.

Erstens, haben andere Leute gefunden, dass dies der Fall ist, oder fehle ich etwas?

Zweitens, hat jemand eine geeignete Methode zur Deserialisierung von ActionScript-Klassen in unveränderliche Objekte oder Singletons?

Vielen Dank

Antwort

5

Ja, es ist ein häufiges Problem. Adobe empfiehlt, dass der Java-Typ, der über unveränderliche Eigenschaften verfügt, Externalizable implementiert und der entsprechende ActionScript-Typ IExternalizable implementiert.

+0

Dank Graeme. Ich kam zu demselben Schluss. Ich nehme nicht an, dass Sie irgendwelche Pläne für writeReplace und readResolve kennen, um in Zukunft von LCDS korrekt gehandhabt zu werden, sind Sie? –

2

Es gibt keinen Plan, um die writeReplace und readResolve zu handhaben, aber Sie können für eine Feature-Anfrage http://bugs.adobe.com/jira/browse/BLZ

fragen Wenn Ihre benutzerdefinierte Serialisierung kümmern Implementierung, die Sie einige Vorteile wie Komprimieren Zahlen zu verlieren und zu identifizieren doppelte Strings. Eine Idee ist es, den eigentlichen Serialisierungsmechanismus zu betrachten und entsprechend zu modifizieren.

Wenn Sie jedoch daran interessiert sind nur in den Nur-Lese-Eigenschaften Serialisierung diese Verbesserung in den BlazeDS umgesetzt wurde, werfen Sie einen Blick hier: http://bugs.adobe.com/jira/browse/BLZ-427