如何在从ObjectInputStream
读取对象时加载未找到的类实施例
InputStream pis = new InputStream();
ObjectInputStream ois = new ObjectInputStream(pis);
Object o = null;
try{
o = ois.readObject();
}
catch(ClassNotFoundException ex){
//How to try to load a class to read object again?????
o = ois.readObject();
}
谢谢, TH
答案 0 :(得分:1)
在尝试反序列化对象时,尝试反序列化的对象的类应该已经在类路径中。
如果遇到这种情况,我猜你在运行时确实做不了多少。相反,您可以使用它来检测您是否仍然缺少类路径中的类,并在开发期间将这些类添加到项目和类路径中。
答案 1 :(得分:0)
在两端使用RMIClassLoader
,并在发送端注意其记录的要求。
答案 2 :(得分:0)
如果班级已移动,也可以抛出ClassNotFoundException
。
让我们说你序列化一个类实例。之后,由于一些重构,课程被移动了。然后你就会被困住,因为旧班级的完全限定名称不再有效。无法从流中恢复您的对象。