我正在从序列化形式加载一个对象:
private void loadSerialisedIntersection() throws IOException{
try{
FileInputStream f_in = new FileInputStream(getPath());
obj_in = new ObjectInputStream (f_in);
obj = obj_in.readObject();
if(!(obj instanceof Intersection)) {
throw new IOException("Wrong class");
}
}
catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
我想知道投射到我期待的物体类型是否是一个好主意?我看过这个推荐,但我只能想象它会引起问题。如果这是正确的做法,请解释原因?
由于
答案 0 :(得分:2)
您应该将其强制转换为预期类型,因为这是键入语言的重点。您已在检查该对象是否是正确的实例类型。当你完成ObjectInputStream后,关闭它并使obj_in和obj成为范围变量而不是字段(我假设这样)。