我有一個類Data
,它實現了Serializable
接口。本課程具有此類字段Gwt序列號
private boolean q = false;
private String a = "";
private List<Someclass> m = Collections.emptyList();
private List<Object[]> d = Collections.emptyList();
分配給這些成員的值是默認值。 Someclass
類還實現Serializable
並且它具有這樣的列
private Types sqlType;
private int columnWidth;
private String columnName;
Types
是這也實現了串行化的一個枚舉。
在Data
I類具有List<Object[]> d
中,我將節省通過JDBC從數據庫fethced數據(迭代ResultSet
當我使用getObject()
方法)。我使用這樣的構造,因爲它可以運行任何查詢(查詢的結構未知)。在List<Someclass> m
舉行詢問的metada。所以當我嘗試用簡單查詢獲取行時,我得到了
com.google.gwt.user.client.rpc.SerializationException: Type '[Ljava.lang.Object;' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = [Ljava.lang.Object;@127053a9
它爲什麼發生?我所有的傳輸對象都是可序列化的。
編輯 好吧,Object
無法序列化,因此它不能被傳遞到並從服務器返回。但是我應該在這種情況下使用。泛型不會幫助我,因爲我不知道在編譯時的類型
無論「Object」不可串行化,最好在RPC調用中使用ArrayList而不是List。參見[http://stackoverflow.com/a/3060233/595072](http://stackoverflow。com/a/3060233/595072) – dimchez
我們使用ArrayList而不是'ArrayList