从序列化表单加载后,我应该抛出一个对象吗?

时间:2016-05-26 21:47:16

标签: java serialization casting

我正在从序列化形式加载一个对象:

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();
    }
 }

我想知道投射到我期待的物体类型是否是一个好主意?我看过这个推荐,但我只能想象它会引起问题。如果这是正确的做法,请解释原因?

由于

1 个答案:

答案 0 :(得分:2)

您应该将其强制转换为预期类型,因为这是键入语言的重点。您已在检查该对象是否是正确的实例类型。当你完成ObjectInputStream后,关闭它并使obj_in和obj成为范围变量而不是字段(我假设这样)。