2014-03-25 90 views
0

我正在使用GWT和我的數據傳輸對象(那些從服務器發送到使用RPC的前端)需要實現java.io.Serializable或com.google.gwt.user.client.rpc。 IsSerializable。我想要做的是如何擴展/重寫這些接口之一,以便當GWT調用序列化函數(在幕後)時,它會調用我的方法。我的方法會首先檢查該類是否安全發送,如果是,則調用序列化函數,或者如果不安全,則發送錯誤。這可能嗎?我會在哪裏開始?覆蓋序列化

回答

1

如果你看看對文檔的序列化,你會發現以下內容:

:在序列和反序列化過程中需要進行特殊處理必須實行特殊的方法 這些準確簽名

private void writeObject(java.io.ObjectOutputStream out) 
    throws IOException 
private void readObject(java.io.ObjectInputStream in) 
    throws IOException, ClassNotFoundException; 
private void readObjectNoData() 
    throws ObjectStreamException; 

也許嘗試實現writeObject和readObject。請注意,這些方法是私人的,不會覆蓋任何東西,這一切都通過檢查a.f.a.i.k處理。

http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html

2

您不必系列化一塌糊塗。如果您想在發送數據之前進行檢查,請使用一種方法擴展您的RPC服務以檢查您的對象,並引發異常以通知客戶端。

+0

我不太喜歡你。我真的只關心從服務器通過RPC返回的對象。例如,我想確保數據存儲中的對象在客戶端通過RPC調用請求信息時將其發送到客戶端時將其中的任何受限制信息刪除。 – Michael

相關問題