我想序列化GWT中的一個對象,該對象繼承此代碼中的其他類型的對象。我的結果應該是一個System.out.print
:GWT中的NotSerializableExeption(ByteArrayOutputStream)
import java.io.ByteArrayOutputStream;
import java.io.ObjectOutputStream;
import com.google.gwt.user.client.rpc.IsSerializable;
import spa.shared.storages.RouteStorage;
public class RouteStorageHelper implements IsSerializable {
public RouteStorageHelper() {
}
public void storeRoutes(RouteStorage routeStorage) {
ByteArrayOutputStream baos;
ObjectOutputStream out;
baos = new ByteArrayOutputStream();
try {
out = new ObjectOutputStream(baos);
out.writeObject(routeStorage);
//byte[] byteArray=baos.toByteArray();
out.close();
byte[] serializedGraph=baos.toByteArray();
System.out.println(serializedGraph);
} catch (Exception sqle) {
System.out.print(sqle);
}
}
但我的一切,是一個NotSerializableException
,它講述的東西不是序列。我不明白,因爲其他子類對象也有IsSerializable
接口。
其他類這個接口:RouteStorage, Storage, Patient, Employee
,等... 的事情,我也使用:String, Integer, HashMap, ArrayList, Date (java.util)
和兩個enums Status and Qualifikation
。
是否有任何此類不可序列化? GWT有什麼不同嗎?
所以我不必這樣做:公共類'RouteStorageHelper實現IsSerializable,Serializable'但只使用'Serializable'? –
是的,你只需要'Serializable'。請參閱:http://www.gwtproject.org/doc/latest/FAQ_Server.html#Does_the_GWT_RPC_system_support_the_use_of_java.io.Serializable –