1

設計上不変である(パブリックfinalフィールドのみを含む)オブジェクトをクライアントから返す必要があります。GWTでは、これは不可能のように見えますか?

ImageMetadata_CustomFieldSerializerの後継メソッドを作成し、メソッドをオーバーライドしました。

- instantiateInstance
- serialize

しかし、それでも私の最終オブジェクトは初期化されていません(デフォルトのコンストラクターが呼び出されます)

4

1 に答える 1

0

一般に、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をシリアル化/逆シリアル化するためのコードが含まれています。

オーバーライドされたメソッドでは、静的なメソッドを再利用できます。

お役に立てば幸いです。

于 2012-07-04T11:15:52.433 に答える