[英]ClassNotFoundException while deserializing data
我正在序列化一个Class对象和一个Strings列表,这很好。 但是,如果我尝试对其进行反序列化,则会收到ClassNotFoundException。 这是代码:
Map<Class<? extends IDomain>, List<String>> mapPresetImport = (Map<Class<? extends IDomain>, List<String>>) ois.readObject();
是什么导致了该异常?
好的,我现在知道了。 IDomain是可访问的,但是序列化的类无法访问,因为它们在另一个软件包中,而这些软件包未包含在类路径中。
正如您在注释中提到的,序列化的类在运行时类路径中不可用,因此导致ClassNotFoundException
。
还有另一种方法来反序列化该数据而无需先加载/查找该类吗?
不,必须具有此依赖性。 在反序列化对象之前,您需要包括这些类(以免发生此类异常)。 在Java中使用的反序列化机制肯定会在尝试找到要反序列化的类的阶段失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.