2014-03-25 58 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

相关问题