7

LCDS DataServices データ管理によって管理され、カスタム アセンブラを使用して作成/更新されている複雑なオブジェクトがあります。オブジェクト階層の大部分は正しくシリアライズ/デシリアライズされていますが、不変の Java クラスのシリアライズに関してはつまずきました。

Java のみの世界では、この優れたブログで説明されているように、Java の writeReplace メソッドと readResolve メソッドを使用します

これは、livecycle が writeReplace メソッドを呼び出し、シリアル化のために不変クラスを可変クラスに適切に置き換えることを期待して、私が最初に Java クラスを作成した方法です。ただし、lcds は writeReplace メソッドについて何も知らず、readResolve と writeReplace を無視して readExternal/writeExternal のみを呼び出すように見えます。

まず、他の人がこれに該当することを発見しましたか、それとも私は何かを見逃していますか?

次に、actionscript クラスを不変オブジェクトまたはシングルトンに逆シリアル化する適切な方法を思いついた人はいますか?

どうもありがとう

4

3 に答える 3

5

はい、よくある問題です。Adobe では、不変のプロパティを持つ Java 型で Externalizable を実装し、同等の ActionScript 型で IExternalizable を実装することをお勧めします。

于 2009-11-04T08:51:27.180 に答える
2

writeReplaceとreadResolveを処理する予定はありませんが、機能のリクエストをリクエストできますhttp://bugs.adobe.com/jira/browse/BLZ

カスタムシリアル化を実装するときは、数値の圧縮や重複する文字列の識別など、いくつかの利点が失われることに注意してください。1つのアイデアは、実際のシリアル化メカニズムを調べて、それに応じて変更することです。

ただし、この拡張機能がBlazeDSに実装された読み取り専用プロパティのシリアル化のみに関心がある場合は、http://bugs.adobe.com/jira/browse/BLZ-427を参照してください。

于 2009-12-06T13:08:23.390 に答える
1

私が見つけた最短かつ最も包括的な答え:http://expertdevelopers.blogspot.com/2010/07/serializable-vs-externalizable.html

于 2011-11-03T22:38:44.523 に答える