Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 序列化GWT中的不可变类_Java_Gwt_Serialization_Immutability - Fatal编程技术网

Java 序列化GWT中的不可变类

Java 序列化GWT中的不可变类,java,gwt,serialization,immutability,Java,Gwt,Serialization,Immutability,我需要从客户机返回设计不可变的对象(只包含公共最终字段)。在GWT中,看起来这是不可能的 我创建了ImageMetadata_CustomFieldSerializer的后续方法并重写了以下方法: - instantiateInstance - serialize 但是我的最终对象仍然没有初始化(调用了默认构造函数)通常,CustomFieldSerializer必须包含特殊的静态方法才能正常工作 然后需要添加特殊的静态方法: public static void deserialize(Se

我需要从客户机返回设计不可变的对象(只包含公共最终字段)。在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的代码

在重写的方法中,可以重用静态方法

希望有帮助