【问题标题】:Is it good practice to make multiple classes Serializable?使多个类可序列化是一种好习惯吗?
【发布时间】:2015-03-29 07:26:59
【问题描述】:

我想知道如何正确序列化嵌套类。
我的问题是有一个类有一个我需要序列化的数据列表。但是,数据是许多其他类的对象。例如,如果 Test1 是我的数据类,它有 Test1a 和其他。

如果我不写“implements Serializable”,我得到的错误是 “java.io.NotSerializableException”。

那么我应该对我的所有类“实现 Serializable”吗?

public class Test1 implements Serializable {
     public void save() {
         //some code to save 
     }
     public void load() {
         //some code to load
     }
     public class Test1a {   
          //something related
     }
}

【问题讨论】:

  • 您应该将implements Serializable 添加到您想要序列化的所有类中。并且不要将其添加到您不想序列化的任何内容中。
  • 从 Joshua Bloch 那里阅读 Effective Java,它包含大量关于序列化的信息。

标签: java serializable


【解决方案1】:

是的。如果你不想序列化一个类,那么它所依赖的所有类如果你想序列化它们也应该是可序列化的。如果您不想序列化某个类的成员,请将其标记为瞬态。当您将某些内容标记为瞬态时,它将不会被序列化。这意味着当您反序列化一个对象并且它有一个瞬态成员时,该瞬态成员将获得一个默认值。

【讨论】:

  • 谢谢,这就是我需要的一切。我很感激。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 2017-11-23
相关资源
最近更新 更多