gpt4 book ai didi

gwt - 如何申请SerializationStreamWriter进行存储

转载 作者:行者123 更新时间:2023-12-04 14:38:44 27 4
gpt4 key购买 nike

是否有一种简单的方法可以在不编写自己的生成器的情况下将 SerializationStreamWriter 用于自定义目的?

(例如html5存储)

GWT 的 javadoc 告诉的很少。

最佳答案

我们正在为我们当前的项目编写一个实现,它完全符合您的要求:将自定义对象序列化为字符串并将其保存到本地存储中,将字符串反序列化为对象...

因此,对我来说,可能,在客户端使用 SerializationStreamWriter 进行序列化,并使用 SerializationStreamReader 进行反序列化。

为了实现这一点

您不需要 SerializationStreamWriter/SerializationStreamReader 的生成器,而是TypeSerializer 的生成器(它实现了 com.google.gwt.user.client.rpc.impl.SerializerBase)。这非常简单,看看 com.google.gwt.user.rebind.rpc.TypeSerializerCreator,然后在您的生成器中使用它。或者,如果您的所有自定义对象都在一个 RPC 服务中被引用,您可以只使用生成的 rpc 服务的 TypeSerializer。

并且您必须编写SerializationStreamWriter 或 SerializationStreamReader 的正确实现。因为有两种序列化字符串格式(请求使用的格式和响应使用的格式):

在 GWT 中,您有 ClientSerializationStreamWriter、ClientSerializationStreamReader 用于客户端序列化/反序列化; ServerSerializationStreamWriter、ServerSerializationStreamReader用于服务端序列化/反序列化;

Client SerializationStream Writer会将对象序列化为FORMAT_1,只有Server SerializationStream Reader 可以读取它(将其反序列化为对象)。

Server SerializationStream Writer会将对象序列化为FORMAT_2,只有Client SerializationStream Reader 可以读取它(将其反序列化为对象)。

所以你需要做什么,如果你想使用 ClientSerializationStreamWriter 来序列化你的对象,然后为客户端编写一个类似的 ServerSerializationStreamReader 实现。或者,如果您想使用 ClientSerializationStreamWriter 反序列化字符串,则在客户端编写 ServerSerializationStreamWriter 的类似实现。这并不难,因为 FORMAT_1FORMAT_2 之间的区别只是顺序。

关于gwt - 如何申请SerializationStreamWriter进行存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10574344/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com