【问题标题】:Serialize immutable classes in GWT序列化 GWT 中的不可变类
【发布时间】:2012-07-03 13:45:10
【问题描述】:

我需要从客户端返回对象,该对象在设计上是不可变的(仅包含公共最终字段)。在 GWT 中,看起来这是不可能的?

我创建了 ImageMetadata_CustomFieldSerializer 的继承者并覆盖了方法:

- instantiateInstance
- serialize

但我的最终对象仍未初始化(调用默认构造函数)

【问题讨论】:

    标签: java gwt serialization immutability


    【解决方案1】:

    一般来说,CustomFieldSerializer 必须包含特殊的静态方法才能正常工作。

    然后需要添加特殊的静态方法:

    public static void deserialize(SerializationStreamReader streamReader, MyObject instance) throws SerializationException {
        //...
    }
    
    public static void serialize(SerializationStreamWriter streamWriter, MyObject instance) throws SerializationException {
       //...
    }
    
    public static MyObject instantiate(SerializationStreamReader streamReader) throws SerializationException {
       //...
    }
    

    这些方法包含从 SerializationStream 序列化/反序列化 MyObject 的代码。

    在被覆盖的方法中,可以重复使用静态方法。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2012-03-11
      相关资源
      最近更新 更多