我有一个 GWT 可序列化类,我们称之为 Foo。Foo 实现 IsSerializable,具有原始和可序列化成员以及其他瞬态成员和无参数构造函数。
class Foo implements IsSerializable {
// transient members
// primitive members
public Foo() {}
public void bar() {}
}
也是一个在 RPC 通信中使用 Foo 实例的服务。
// server code
public interface MyServiceImpl {
public void doStuff(Foo foo);
}
public interface MyServiceAsync {
void doStuff(Foo foo, AsyncCallback<Void> async);
}
我如何使用这个:
private MyServiceAsync myService = GWT.create(MyService.class);
Foo foo = new Foo();
...
AsyncCallback callback = new new AsyncCallback {...};
myService.doStuff(foo, callback);
在上述情况下,代码正在运行,并且回调实例的 onSuccess() 方法被执行。
但是当我像这样覆盖 foo 实例上的 bar() 方法时:
Foo foo = new Foo() {
public void bar() {
//do smthng different
}
};
AsyncCallback callback = new new AsyncCallback {...};
myService.doStuff(foo, callback);
我得到 GWT 序列化异常。
请赐教,因为我真的不明白为什么。