java - 尝试从数组写入对象时出现不可序列化异常

标签 java exception

我在运行应用程序文件并尝试将对象写入 .dat 文件时遇到 NotSerializedException。

    try{
        Person[] personList = new Person[3];
        personList[0] = new TeamLeader(8, "Mike Johnson", 29);
        personList[1] = new Engineer(0.4,"Russell Sanders", 22);
        personList[2] = new Engineer(0.7, "Steven Peterson", 25);
        out = new ObjectOutputStream(new FileOutputStream("persons.dat"));
        for(int i = 0; i < personList.length; i++) {
            out.writeObject(personList[i]);//error line 85
        }
        //out.writeObject(personList);
    }

    catch(IOException e) {
        System.out.println("Problem writing file");
        e.printStackTrace();
    } 

错误

java.io.NotSerializableException: TeamLeader
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java: 346)
     at CharlieBrownP6.main(CharlieBrownP6.java: 85)

错误继续到由于相同的错误而中止写入

最佳答案

调用 writeObject 的对象必须实现 Serialized 接口(interface) ( reference )。

关于java - 尝试从数组写入对象时出现不可序列化异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15984345/

相关文章:

java - 文档 base/home/ec2-user/myproject/web 不存在或不是可读目录

c++ - 为什么 C++ STL iostreams 不是 "exception friendly"?

php - 异常应该用于表单验证吗?

c++ - 未处理的异常在 0x00C87963 在 .... : 0xC0000005: Access violation reading location 0xCCCCCCE0

java - 参数化类型(如 Class<)的等效 C# 是什么?在 Java 中扩展 Throwable>?

java - HttpClient:HttpGet 方法失败: HTTP/1.0 503 服务不可用

java - 父类(super class)上 protected 数组的值意外更改

遗留代码的 Java 重构策略

java - 如何在字符串中搜索关键字

java - 为什么没有 OutOfMemoryError 子类?