gpt4 book ai didi

Java:对可序列化性的限制

转载 作者:行者123 更新时间:2023-12-01 16:39:30 25 4
gpt4 key购买 nike

我有一个类 A,它实现了可序列化接口(interface)。有两个子类 B 和 C 扩展了 A。我希望 B 类不可序列化?我怎样才能实现它?

最佳答案

根据定义,如果 Java 类实现了 Serialized 接口(interface),那么它就是可序列化的,可序列化的类不能有不可序列化的子类

因此,在继承树上的类上实现该接口(interface)或在接口(interface)中扩展它之前,应该三思而后行。我知道一个项目,其中顶级 IIdentABLE 接口(interface)扩展了 Serializable,强制所有域类可序列化。不幸的是(对于想要使用该功能的同事),其中许多在实践中是不可序列化的,因为:

您可以通过以下几种方式在运行时阻止序列化:

  • 通过添加未实现 Serialized 的类型的成员变量(如 jefflub 的答案所示),或
  • 通过实现方法private void writeObject(java.io.ObjectOutputStream out) throws IOException(具有确切的签名)并在该方法中抛出IOException,<

任何序列化类的尝试都会引发异常。

关于Java:对可序列化性的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5371433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com