我已将对象添加到ArrayList
ArrayList<Pojazd> parking=new ArrayList<>();
并将整个列表作为对象写入文件。
void exportArrayListy() throws IOException{
FileOutputStream fo=new FileOutputStream("arraylista.ser");
ObjectOutputStream oo=new ObjectOutputStream(fo);
oo.writeObject(parking);
fo.close();
parking=null;
}
问题在于尝试将它们作为一个整体阅读:
void importArrayListy() throws IOException, ClassNotFoundException{
FileInputStream fi=new FileInputStream("arraylista.ser");
ObjectInputStream oi=new ObjectInputStream(fi);
parking=(ArrayList<Pojazd>)oi.readObject();
oi.close();
}
(一切都在尝试捕获,所以没有什么可担心的)。我收到以下警告:
警告:[未选中]未经检查的强制转换 停车=(ArrayList的)oi.readObject(); required:ArrayList 发现:对象
答案 0 :(得分:4)
是的,java不幸地做到了。这是许多奇怪的功能之一&#34;在其类型系统中。
.readObject最初是在泛型的概念存在之前创建的,因此它不是参数化的,并且被声明为返回Object。
如果警告困扰您,您可以通过在函数声明之前添加注释@SuppressWarnings("unchecked")
来禁止它。
finally
子句并在那里移动oi
,以避免将其打开.readObject
中的例外情况