【问题标题】:How to make a non serializable subclass? [duplicate]如何制作不可序列化的子类? [复制]
【发布时间】:2014-02-24 09:04:56
【问题描述】:

我想就是否可以将子类标记为不可序列化获得您的意见/答案?

例如:- A 类 --> 实现可序列化标记接口
B 类 --> 扩展 A

根据继承,B 类自动符合序列化条件。他们是否可以将 B 类标记为不可序列化?

问候,

【问题讨论】:

    标签: java serialization


    【解决方案1】:

    Serializable 类的子类不可能是 non-Serializable。

    虽然你可以通过让每个成员transient 来确保类中的任何内容都不会被序列化

    【讨论】:

      【解决方案2】:

      不,但你可以阻止它。在类中定义一个带有适当签名的 writeObject() 方法,并让它抛出 NotSerializableException。

      【讨论】:

      • 这是我最初的想法,但 OP 想要 标记 它不可序列化,而不是 防止 它被序列化
      【解决方案3】:

      @Deepan :没有办法使子类不可序列化,但有一个技巧可以做到这一点:

      class B extends A {
          private void writeObject(ObjectOutputStream oos) throws IOException {
              throw new NotSerializableException();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-21
        • 2011-12-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-01
        • 2021-05-31
        • 2020-12-16
        • 1970-01-01
        相关资源
        最近更新 更多