GWT 中的 IsSerializable 是啥?

Posted

技术标签:

【中文标题】GWT 中的 IsSerializable 是啥?【英文标题】:what IsSerializable or not in GWT?GWT 中的 IsSerializable 是什么? 【发布时间】:2011-03-21 14:49:18 【问题描述】:

我的 GWT 项目中有这个简单的对象。我无法通过网络发送它。这样的类是不能放构造函数的吗?

public class MceDto implements IsSerializable 
    public MceDto(String uri, String tag) 
        this.uri = uri;
        this.tag = tag;
    

    public String uri;

    public String tag;

    public Date created;

我检查了 *.gwt.rpc 策略,并且该对象不存在意味着它不可序列化或其他东西。我如何事先知道是否可以序列化对象?

谢谢

【问题讨论】:

【参考方案1】:

您使用的是什么版本的 GWT?

IsSerializable 接口是 GWT pre-1.4 的遗迹。您是否尝试过使用 Java 标准的 java.io.Serializable 标记接口?

请参阅this GWT FAQ 了解更多信息。


根据GWT serialization docs:

如果满足以下所有条件,则用户定义的类是可序列化的:

    它可以分配给IsSerializableSerializable,要么是因为它直接实现了这些接口之一,要么是因为它派生自实现了这些接口的超类 所有非final、非transient 实例字段本身都是可序列化的,并且 从 GWT 1.5 开始,它必须有一个默认(零参数)构造函数(带有任何访问修饰符)或根本没有构造函数。

所以你必须为你的类提供一个无参数的构造函数才能被 GWT 序列化。

【讨论】:

以上是关于GWT 中的 IsSerializable 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

GWT 序列化问题

RPC 上的 GWT 序列化

gwt-comet 中的心跳是啥?

检索 ArrayList 时出现 GWT-RPC 无法解释的 500 状态错误

使用 RPC 服务创建 GWT.create 的目的是啥?

GWT 2.5 的最佳谷歌地图 V3 API 是啥? [关闭]