【发布时间】:2009-05-18 14:42:23
【问题描述】:
如果 stackoverflow 上已经发布了类似的问题,请发布链接。
什么需要为要序列化的对象实现 Serializable 接口(没有方法)? Java API 说 - - 如果它没有实现,那么它会抛出 java.io.NotSerializableException。
这是因为 ObjectOutputStream.java 中的以下代码
............................
writeObject0(Object obj, boolean unshared){
.............
} else if (cl.isArray()) {
writeArray(obj, desc, unshared);
} else if (obj instanceof Serializable) {
writeOrdinaryObject(obj, desc, unshared);
} else {
throw new NotSerializableException(cl.getName());
}
................
但我的问题是为什么有必要实现 Serializable 从而通知或告诉 Java/JVM 一个类可以被序列化。 (只是为了避免例外吗?)。
在这种情况下,如果我们编写一个类似的功能,将对象写入流而不检查 instanceOf 中的类是否可序列化,那么类的对象是否不会实现 Serializable 序列化?
感谢任何帮助。
【问题讨论】:
-
This question 对此有一些很好的答案。
标签: java serialization