我需要从设计上不可变的客户端返回对象(仅包含公共最终字段)。在 GWT 中,看起来这是不可能的?
我创建了 ImageMetadata_CustomFieldSerializer 的继任者并覆盖了方法:
- instantiateInstance
- serialize
但我的最终对象仍未初始化(调用了默认构造函数)
我需要从设计上不可变的客户端返回对象(仅包含公共最终字段)。在 GWT 中,看起来这是不可能的?
我创建了 ImageMetadata_CustomFieldSerializer 的继任者并覆盖了方法:
- instantiateInstance
- serialize
但我的最终对象仍未初始化(调用了默认构造函数)
通常,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 的代码。
在被覆盖的方法中,可以重用静态方法。
希望有帮助。