序列化不可改变的Java类LCDS为ActionScript(Serializing immutab

2019-08-17 07:51发布

我有正在由LCD中DataService的数据管理管理和创建使用自定义组装/更新等一个复杂的对象。 绝大多数的对象层次是被序列化/反序列化正确的,但是当它涉及到序列化不可改变的Java类我已经打了一个绊脚石。

在只有一个java世界这个优秀的博客介绍了我会使用java writeReplace和readResolve方法来: http://lingpipe-blog.com/2009/08/10/serializing-immutable-singletons-serialization-proxy/

这是我原来写我的java类,预期的LiveCycle调用writeReplace方法,并正式与一个可变的一个系列化替代不可变类。 但是它会出现液晶显示器什么都不知道的writeReplace方法,只会叫的readExternal /忽略的writeExternal和的readResolve writeReplace。

首先,有其他人发现这是这种情况,还是我失去了一些东西?

其次,有没有人想出一个适当的方法来ActionScript类反序列化为不可变对象或单身?

非常感谢

Answer 1:

是的,这是一个普遍的问题。 的Adobe建议有不可改变的属性的Java类型实现外部化和等效的ActionScript类型实现IExternalizable的。



Answer 2:

没有计划来处理writeReplace和的readResolve,但你可以要求一个功能请求http://bugs.adobe.com/jira/browse/BLZ

当你实现自定义序列化照顾,你将失去像压缩数字和识别重复的字符串一些好处。 一种想法是采取实际的序列化机制来看看,并相应修改。

但是,如果你有兴趣就在这个序列化增强在BlazeDS的实施只读属性,看看这里: http://bugs.adobe.com/jira/browse/BLZ-427



Answer 3:

最短和最全面的解答,我发现: http://expertdevelopers.blogspot.com/2010/07/serializable-vs-externalizable.html



文章来源: Serializing immutable java classes to actionscript with LCDS