我想知道如何正确序列化嵌套类。
我的问题是有一个类有一个我需要序列化的数据列表。但是,数据是许多其他类的对象。例如,如果Test1是我的数据类,它有Test1a和其他。
如果我不写“实现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
}
}
答案 0 :(得分:4)
是。如果你不想序列化一个类,那么它所依赖的所有类也应该是Serializable,如果你想序列化它们的话。如果您不希望序列化类的成员,请将其标记为瞬态。当您将某些内容标记为瞬态时,它将不会被序列化。这意味着当您反序列化一个Object并且它有一个瞬态成员时,该瞬态成员将获得一个默认值。