gpt4 book ai didi

java - 无法转换为 java.util.ArrayList

转载 作者:行者123 更新时间:2023-11-30 07:01:05 25 4
gpt4 key购买 nike

试图将一个对象写入数组,然后保存到 output.data,然后再次读取对象。

写作:

private void saveBtnActionPerformed(java.awt.event.ActionEvent evt) {                                        

File outFile;
FileOutputStream fStream;
ObjectOutputStream oStream;

try {
outFile = new File("output.data");
fStream = new FileOutputStream(outFile);
oStream = new ObjectOutputStream(fStream);

oStream.writeObject(arr);

JOptionPane.showMessageDialog(null, "File Written Successfully");

oStream.close();
} catch (IOException e) {
System.out.println("Error: " + e);
}
}

阅读:

private void readBtnActionPerformed(java.awt.event.ActionEvent evt) {                                        

File inFile;
FileInputStream fStream;
ObjectInputStream oStream;

try {
inFile = new File("output.data");
fStream = new FileInputStream(inFile);
oStream = new ObjectInputStream(fStream);

//create an array of assessments
ArrayList <Assessment> xList;
xList = (ArrayList<Assessment>)oStream.readObject();



for (Assessment x:xList) {
JOptionPane.showMessageDialog(null, "Name: " + x.getName() + "Type: " + x.getType() + "Weighting: " + x.getWeighting());
}

oStream.close();
} catch (IOException e) {
System.out.println("Error: " + e);
} catch (ClassNotFoundException ex) {
System.out.println("Error: " + ex);
}


}

代码编译得很好,文件本身也保存得很好。但是当我尝试读取文件时没有任何反应,NetBeans 说

“线程“AWT-EventQueue-0”中的异常 java.lang.ClassCastException:[Lnetbeansswingexample.Assessment;无法转换为 java.util.ArrayList”

麻烦的代码行似乎是

xList = (ArrayList<Assessment>)oStream.readObject();

非常感谢任何帮助,谢谢。很抱歉,如果答案很明显,编程很新。

最佳答案

根据您得到的异常,它看起来像 oStream.readObject() 返回一个 Assessment 数组,而不是一个 List。您可以将其转换为 List:

    List <Assessment> xList;
xList = Arrays.asList((Assessment[])oStream.readObject());

或者如果您必须使用 java.util.ArrayList :

    ArrayList<Assessment> xList;
xList = new ArrayList<> (Arrays.asList((Assessment[])oStream.readObject()));

关于java - 无法转换为 java.util.ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30071072/

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