我有一个 ShortcutVirtualSystemEntry
的 ArrayList
,其中:
public class ShortcutVirtualSystemEntry extends VirtualSystemEntry implements IsSerializable {
public ShortcutVirtualSystemEntry(String id, String label, String image,
String tooltip, String parent, int x, int y, int tray, Command action) {
super(id, label, image, tooltip, parent, x, y, tray, action);
}
public ShortcutVirtualSystemEntry() {
}
}
当我尝试通过RPC
调用将ArrayList
从客户端传递到服务器时,列表中的所有对象都被实例化,但没有数据
这里是 RPC:
docService.saveDocument2(shortcuts,
new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
Window.alert("Faliled");
caught.printStackTrace();
}
@Override
public void onSuccess(Void result) {
Window.alert("Success");
}
});
服务器端:
@Override
public void saveDocument2(
List<ShortcutVirtualSystemEntry> shortcuts) {
for(ShortcutVirtualSystemEntry v: shortcuts)
{
System.out.println("Image "+v.getImage());// Prints : Image null...
}
}
那么为什么我必须丢失我的列表数据?我做错了什么
提前非常感谢:)
最佳答案
我对GWT了解不多。但 RPC 的共同规则是确保集合中的元素也是可序列化的。因此,如果您发送可序列化的列表,但列表中的对象不可序列化,那么您将无法通过 RPC 正确获取元素。因此,请确保列表中的对象是可序列化的。
关于java - 无法在通过 GWT-RPC 传递到服务器的 ArrayList 中找到对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17059672/