【问题标题】:Override serialization覆盖序列化
【发布时间】:2014-03-25 12:13:58
【问题描述】:

我正在使用 GWT,我的数据传输对象(使用 RPC 从服务器发送到前端的对象)需要实现 java.io.Serializable 或 com.google.gwt.user.client.rpc.IsSerializable。我想做的是如何扩展/覆盖这些接口之一,以便当 GWT 调用序列化函数(在幕后)时,它会调用我的方法。我的方法将首先检查该类是否可以安全发送,如果可以,则调用序列化函数,或者如果发送不安全则抛出错误。这可能吗?我该从哪里开始?

【问题讨论】:

    标签: java gwt serialization


    【解决方案1】:

    您不必搞乱序列化。如果您想在发送数据之前进行检查,请使用检查对象的方法扩展您的 RPC 服务,并引发异常通知客户端。

    【讨论】:

    • 我不太关注你。我真的只关心通过 RPC 从服务器返回的对象。例如,当客户端通过 RPC 调用请求信息时,我想确保数据存储中的对象在发送给客户端之前已从其中删除任何受限信息。
    【解决方案2】:

    如果您查看有关可序列化的文档,您会发现以下内容:

    在序列化和反序列化过程中需要特殊处理的类必须实现具有这些确切签名的特殊方法:

    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

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 1970-01-01
      • 2016-02-09
      • 2014-03-18
      • 1970-01-01
      • 2019-05-23
      • 2013-10-02
      • 1970-01-01
      • 2021-03-26
      相关资源
      最近更新 更多