class 中的 class 序列化
Serialization of a class inside the class
我目前正在尝试制作具有 serialize
方法的 class Singleton
。 objective是在自己的函数中序列化Singleton
。有什么方法可以在 class 中序列化 class 吗?
这是我尝试过的示例:
public void serialize() {
Singleton commit = this.getInstance();
try {
FileOutputStream fileOut = new FileOutputStream(new Config().getDataFile());
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(commit);
out.close();
fileOut.close();
} catch (Exception e) {
System.out.println("Unable to commit database changes.");
e.printStackTrace(System.out);
}
}
下面的堆栈跟踪:
Unable to commit database changes.
java.io.NotSerializableException: com.cuistot.data.Singleton
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at [...].Singleton.serialize(Singleton.java:50)
[...]
您的 class 实施 Serializable
了吗?
查看 source code for ObjectOutputStream.writeObject0
,如果对象不是 Serializable
,它会抛出 NotSerializableException
。
我目前正在尝试制作具有 serialize
方法的 class Singleton
。 objective是在自己的函数中序列化Singleton
。有什么方法可以在 class 中序列化 class 吗?
这是我尝试过的示例:
public void serialize() {
Singleton commit = this.getInstance();
try {
FileOutputStream fileOut = new FileOutputStream(new Config().getDataFile());
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(commit);
out.close();
fileOut.close();
} catch (Exception e) {
System.out.println("Unable to commit database changes.");
e.printStackTrace(System.out);
}
}
下面的堆栈跟踪:
Unable to commit database changes.
java.io.NotSerializableException: com.cuistot.data.Singleton
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348)
at [...].Singleton.serialize(Singleton.java:50)
[...]
您的 class 实施 Serializable
了吗?
查看 source code for ObjectOutputStream.writeObject0
,如果对象不是 Serializable
,它会抛出 NotSerializableException
。