【发布时间】:2010-10-01 06:28:27
【问题描述】:
我们大量使用序列化,并且必须在我们使用的每个对象上指定 Serializable 标记是一种负担。尤其是当它是一个我们无法真正改变的 3rd-party 类时。
问题是:既然 Serializable 是一个空接口,并且一旦添加 implements Serializable,Java 就会提供强大的序列化 - 为什么他们不让所有东西都可序列化,仅此而已?
我错过了什么?
【问题讨论】:
-
如果你想让自己的对象可序列化怎么办?还是我误会了什么?
-
我仍然会得到 NotSerializableException 因为我的对象的所有字段都必须是可序列化的
-
完全同意 Pop Catalin 和 dmitry 的“这个 Serializable 技巧只是十年或两年前做出的另一个错误决定”。序列化有多危险并不重要。而且,既然声明是明确的,那么“你知道你必须特别注意”是不正确的:每个需要它的人都首先放置“实现”的东西,然后在出现问题时考虑暗示。如果他们给了我们一个“Unserializable”接口来应用在特殊情况下,那就更清楚了。
标签: java serialization