我有一个我可以毫无问题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 包装器,则会引发提到的异常。这里有什么问题?