我有一个复杂的对象,该对象由 LCDS DataServices 数据管理进行管理,并使用自定义汇编程序进行创建/更新等。绝大多数对象层次结构都已正确序列化/反序列化,但在序列化不可变的 java 类时我遇到了障碍。
在仅使用 java 的世界中,我将使用 java writeReplace 和 readResolve 方法,如这个优秀博客所描述的:http://lingpipe-blog.com/2009/08/10/serializing-immutable-singletons-serialization-proxy/ https://web.archive.org/web/20091113072714/http://lingpipe-blog.com/2009/08/10/serializing-immutable-singletons-serialization-proxy
这就是我最初编写 java 类的方式,期望 livecycle 调用 writeReplace 方法并适当地将不可变类替换为可变类以进行序列化。然而,lcds 似乎对 writeReplace 方法一无所知,只会调用 readExternal/writeExternal 而忽略 readResolve 和 writeReplace。
首先,其他人是否发现了这种情况,或者我错过了什么?
其次,有没有人想出一种适当的方法将动作脚本类反序列化为不可变对象或单例?
是的,这是一个常见问题。 Adobe 建议具有不可变属性的 Java 类型实现Externalizable,而等效的 ActionScript 类型实现 IExternalizable。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)