0

送信しようとしているクラスは次のとおりです。

public class DummyClass implements Serializable, IsSerializable {

  private Map<String, Object> properties = new HashMap<String, Object>();


  public DummyClass() {
    // stuff
  }
  public Object getValue(String key) {
    return properties.getValue(key);
  }
  public void setValue(String key, Object value) {
    properties.put(key, value);
  }
}

しかし、GWT RPC のメソッドにパラメーターとして送信しようとすると、アンブレラ例外が発生します。

  DummyClass dummy = new DummyClass();
  dummy.setValue("foo", "bar");
  ServiceImpl impl = Gwt.create(SampleService.class).doSomething(dummy);

Map properties...で指定されたジェネリック型を削除できますが、プロパティ マップに格納できるものに制限はありませんObjectSerializable

クラスのインスタンスは、Java の標準シリアライゼーションを使用して問題なくシリアライズされます。

また、GWT コンパイラによって表示される警告やエラーはありません。

これを機能させるために私ができることを誰かが指摘できることはありますか?

4

1 に答える 1

0

java.lang.Objectおそらく、メソッドの戻り値の型getValue()とパラメーターの型をsetValue()より具体的なもの (例: )に置き換えてみることができますjava.io.Serializable

また、オブジェクトが実装するだけであれば問題ありSerializableません (それ以外に実装する必要はありませんIsSerializable)。

于 2012-08-22T22:36:34.507 に答える