我正在使用GWT和我的数据传输对象(那些使用RPC从服务器发送到前端的对象)需要实现java.io.Serializable或com.google.gwt.user.client.rpc.IsSerializable。我想做的是如何扩展/覆盖其中一个接口,以便当GWT调用序列化函数(在幕后)时,它调用我的方法。我的方法首先检查该类是否可以安全发送,如果是,则调用序列化函数或如果不安全发送然后抛出错误。这可能吗?我从哪里开始?
答案 0 :(得分:2)
您不必弄乱序列化。如果要在发送数据之前进行检查,请使用方法扩展RPC服务以检查对象,并引发异常以通知客户端。
答案 1 :(得分: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