我有一个程序,可以将 PanelFurniture
对象添加到 ArrayList
中。当我尝试将数据保存在文件中时,出现异常 java.io.NotSerializedException: PanelFurniture$1
。 PanelFurniture
是类的名称,它已经实现了 Serialized
,所以我不明白问题可能是什么。
这是我将 ArrayList 写入文件的代码
if(ae.getSource() == commandButtons[5]) {
int x = 5 , y = 11;
File confidential = new File("secrets.txt");
PrintWriter output = null;
try {
saveFile = new FileOutputStream("myFile.dat");
save = new ObjectOutputStream(saveFile);
save.writeObject(orderList);
save.close();
System.out.println(orderList);
}
catch (Exception e){
e.printStackTrace();
}
}
}
最佳答案
PanelFurniture$1
指的是一个匿名内部类,它显然没有实现Serialized
。因此,您应该使用 transient 来限定相应的类成员(或者将其改为局部变量),因为匿名类不应包含可序列化的数据。如果你的内部类是这样,你应该变成一个普通的(命名的)内部类并让它实现可序列化
。
关于java - 将 ArrayList 保存到文本文件时出现 NotSerializedException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10175419/