2012-04-20 34 views
1

CustomFieldSerializerを使用して、オブジェクトのカスタムシリアル化とデシリアライズを定義します。CustomFieldSerializerに静的メソッドが必要なのはなぜですか?

それはあなたのクラスXxxのカスタムのシリアル化を定義するために表向きは簡単です:

  • 抽象メソッドserializeInstancedeserializeInstanceを実装し、必要に応じてinstantiateInstance
  • CustomFieldSerializer<Xxx>を拡張Xxx_CustomFieldSerializerというクラスを作成します。それはあなたが実装されたメソッドが何を正確に何をすべきかの静的メソッドを作成したい

    subtype Custom Field Serializer 'Xxx_CustomFieldSerializer' does not define a deserialize method: 'public static void deserialize(SerializationStreamReader reader,Xxx instance)' (reached via Xxx)' 
    

これは無数には、以下に煮詰めるコンパイルエラーを生成します。明らかに1つは他の人に委任しますが、同様のタイプのこの定型文のすべてを抽出できないことを意味しますXxx

なぜですか?これはGWTの古いバージョンか何かのまま残されていますか?すべての余分なものを書く必要を避ける方法はありますか?

+1

あなたのコードを示してもらえますか?それは(http://code.google.com/p/google-web-toolkit/source/detail?r=9592)働いています。また、問題をデバッグするために 'com.google.gwt.user.server.rpc.impl.SerializabilityUtil#loadCustomFieldSerializer'にブレークポイントを設定してください。 –

+0

そのチェンジリストのすべてのCFSは静的メソッドを実装しているので、どのように動作するはずであるかはわかりません。あなたはコンパイラでデバッグを意味しますか?はい、私はそれを試みます。 –

+1

ああ、 'com.google.gwt.user.rebind.rpc'(その変更に含まれていない)は静的メソッドを必要とし、それらのインスタンスメソッドはサーバ側での最適化に過ぎません。 –

答えて

関連する問題