2

GWT RPC (GWT 2.4) 経由でオブジェクトを送信しようとしています。オブジェクトには、次のフィールドを含むオブジェクトが含まれます:

@Serialized
private Map<Class<? extends Foo>, Foo> fooMap = ImmutableMap.of(); 

Fooと定義されている:

public interface Foo extends Serializable {

}

fooMapが空の場合、正常に動作します。データが入力されると、GWT RPC はSerializationException. (サーバーがヒットすることはありません。) Fooinの唯一の型fooMapは、このクラスからのものです。

public class FooImpl implements Foo {

  private static final long serialVersionUID = 1L;

  private long bar;
  private float baz;
  private int batz;

  ... 
}

私は何を間違っていますか?FooImpl問題を起こすべきではありません。すべてのクラスには、引数なしのコンストラクターがあります。すべてのシリアル化されたオブジェクトのすべてのプライベート フィールドにゲッターとセッターは必要ありませんよね? 問題はClass<? extends Foo>ありますか?

4

1 に答える 1

2

Class<? extends Foo>問題になる可能性が高いです。私の知る限り、GWT はClassインスタンスをシリアライズ/デシリアライズする方法を単純に知りません (通常のオブジェクト、列挙型、および配列をシリアライズするためのコードしかなく、CustomFieldSerializer はありません)。Classしたがって、インスタンス の代わりにクラス名を使用してみてください。

于 2012-04-05T13:40:13.117 に答える