【问题标题】: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 的代码。
在被覆盖的方法中,可以重复使用静态方法。
希望对您有所帮助。