2009-10-06 12 views
7

Mam złożony obiekt, który jest zarządzany przez zarządzanie danymi DataScale LCDS i jest tworzony/aktualizowany itp. Przy użyciu niestandardowych asemblerów. Zdecydowana większość hierarchii obiektów jest serializowana/deserializowana poprawnie, ale trafiłem na przeszkodę, jeśli chodzi o serializowanie niezmiennych klas java.Serializowanie niezmiennych klas java na actionscript z LCDS

W java tylko świat używam writeReplace Java i metod readResolve jak to doskonały blog opisuje: http://lingpipe-blog.com/2009/08/10/serializing-immutable-singletons-serialization-proxy/

To jak ja pierwotnie napisałem klasy java, oczekując LiveCycle wywołać metodę writeReplace i należycie zastąpić niezmienna klasa z zmienną dla serializacji. Jednak wydaje się, że lcds nic nie wie o metodzie writeReplace i będzie wywoływał tylko readExternal/writeExternal ignorując readResolve i writeReplace.

Po pierwsze, czy inni ludzie stwierdzili, że tak jest, czy też czegoś brakuje?

Po drugie, czy ktoś wymyślił odpowiednią metodę przekształcania klasy actionscript na niezmienne obiekty lub pojedyncze znaki?

Wielkie dzięki

Odpowiedz

5

Tak, jest to częsty problem. Firma Adobe zaleca, aby typ Java z niezmiennymi właściwościami implementował funkcję Externalizable, a odpowiadający jej typ ActionScript implementował IExternalizable.

+0

Thanks Graeme. Doszedłem do tego samego wniosku. Nie przypuszczam, że jesteś świadomy jakichkolwiek planów dotyczących writeReplace i readResolve, aby móc poprawnie obsługiwać LCDS w przyszłości? –

2

Nie ma planu, aby obsłużyć writeReplace i readResolve, ale można poprosić o zamówienie fabularnego http://bugs.adobe.com/jira/browse/BLZ

Przy wdrażaniu niestandardowe serializacji zadbać że stracisz kilka korzyści, takich jak numery kompresji i identyfikacji duplikatów ciągów. Jednym z pomysłów jest przyjrzenie się faktycznemu mechanizmowi serializacji i odpowiednie zmodyfikowanie go.

Jednakże, jeśli jesteś zainteresowany tylko w szeregowania tylko do odczytu właściwości tego akcesorium został zaimplementowany w BlazeDS, spójrz tutaj: http://bugs.adobe.com/jira/browse/BLZ-427

Powiązane problemy