我有一个List<Foo> foos
我可以毫无问题地发送给GWT RPC service
。
但是,如果我将该列表包装到一个新对象中,我在启动时会遇到异常。
subtype MyDTO is not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' or 'java.io.Serializable' nor does it have a custom field serializer (reached via MyDTO)
为什么我可以自己发送列表,但不能发送包装器对象?
使用:
class MyDTO {
List<Foo> foos; //containing Rectanlges (see below)
public MyDTO() {}
List<Foo> getFoos() { return foos; }
void setFoos(List<Foo> foots) { this.foos = foos; }
}
与Foo建立一个界面,如:
interface Foo {
abstract int getX();
abstract void setX(int x);
}
class Rectangle implements Foo {
private int x;
public Rectangle() {};
//impl of foo methods
}
当然这种结构并没有多大意义,但它描述了我的问题。 如果我只是通过RPC发送List foos一切正常。
如果我发送包含foos列表的MyDTO包装器,则会引发Exception。 这有什么不对?
答案 0 :(得分:4)
让MyDTO实施Serializable
。 List
默认为Serializable。