java - 将 ArrayList 保存到文本文件时出现 NotSerializedException

标签 java exception serialization

我有一个程序,可以将 PanelFurniture 对象添加到 ArrayList 中。当我尝试将数据保存在文件中时,出现异常 java.io.NotSerializedException: PanelFurniture$1PanelFurniture 是类的名称,它已经实现了 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/

相关文章:

java - 不使用 ObjectOutputStream 复制可序列化对象

java - Timer 和 Meter 指标的分钟率表示什么?

java - 在java中保存为文本文件或对象有什么区别以及何时使用?

java - 使用 SerializationUtils.clone() 时出现 ClassNotFoundException

android - 从文件中读取对象会抛出 IllegalAccessException

python - 定义镜像内置异常格式的自定义 Python 异常

java - 如何处理java.io.InvalidClassException?

c# - 序列化列表对象为XML值异常: There was an error reflecting type "..Otrx"

java - 仅使用静态方法对类进行依赖注入(inject)?

exception - "errors/exceptions"和 "throw/catch"之间的区别?