gpt4 book ai didi

java - 将文件中的对象读取到数组列表中

转载 作者:太空宇宙 更新时间:2023-11-04 11:30:51 25 4
gpt4 key购买 nike

我在读取文件、将文本更改为对象然后将其添加到数组列表中时遇到问题。

这是我的读写文件代码

public class ReadWrite {

public void save(String filename, ArrayList<Sale> buildings) throws IOException{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filename));
oos.writeObject(buildings);
oos.close();
}
public ArrayList<Sale> load(String filename) throws ClassNotFoundException, IOException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filename));
buildings = (ArrayList<Sale>)ois.readObject();
ois.close();
return buildings;
}
}

问题是

buildings = (ArrayList<Sale>)ois.readObject();

这表明它是从 Object 到 ArrayList 的未经检查的转换。在论坛中搜索有关此问题但似乎找不到它

最佳答案

这里没什么可做的。

ois.readObject(); 确实有返回类型 Object;只是因为流无法知道任意流中的内容是什么。但你告诉编译器:“我认为它一定是一个ArrayList”。编译器告诉你:“你不可能知道这一点!”

您可以使用 instanceof 检查对象的类型,或者使用注释来抑制警告。

更安全的解决方案当然是仅在对象实际上是 instanceof ArrayList 时才进行转换。

或者您可以(“安全地”)忽略此警告。正如您所知,您在该文件中写入了哪些内容。但如果你搞砸了,你就会面临运行时出现异常的风险。

关于java - 将文件中的对象读取到数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43821752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com