【发布时间】:2016-01-04 10:42:55
【问题描述】:
我一直在网上搜索一些与java中的枚举类相关的查询的答案。
我的问题是为什么在枚举类中阻止了默认的反序列化。我可以看到枚举类实现了 Serializable 接口,但它也有如下 2 个方法 --
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
throw new InvalidObjectException("can't deserialize enum");
}
private void readObjectNoData() throws ObjectStreamException {
throw new InvalidObjectException("can't deserialize enum");
}
看了这堂课,我更困惑了。任何帮助将不胜感激。提前致谢。
我更加困惑,因为 ENUM 本身实现了可序列化接口并且也有上述方法抛出“throw new InvalidObjectException("can't deserialize enum");”例外。所以我对以上两种方法的用途没有清楚的了解?
上面两个方法上的cmets也说“防止默认反序列化”是什么意思?
【问题讨论】:
-
不是重复请检查编辑。
标签: java serialization enums