java - Java 不可序列化

标签 java file computer-science serializable

我不明白为什么我的类不可序列化。正如您在下面的代码中看到的,我的类实现了 Serialized 接口(interface)。

public class Firm {

PrintWriter out = new PrintWriter(System.out, true);
Scanner sc = new Scanner(System.in);

Set<Worker> workers = new HashSet<>();

boolean saveToFile(){
    String fileName = "text.txt";
    ObjectOutputStream file;
    boolean save = false;
    try{
        file = new ObjectOutputStream(new FileOutputStream(fileName));
        file.writeObject(workers);
        file.close();
        save = true;
    }catch(IOException e){
        e.printStackTrace();
    }
    return save;
}
}

import java.io.Serializable;

public abstract class Worker implements Serializable {//Code

有什么解决办法吗?

最佳答案

问题是 PrintWriterScanner 不可序列化;你不能像这样序列化 I/O 连接。

如果您确实需要它们,请将它们作为局部变量移动到您使用它们的任何地方。不要将它们存储在类中。

关于java - Java 不可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34775867/

相关文章:

java - 如何将数组写入文件Java

java - 窗口不弹出

java - 如何使用 Java Spring 在 MySql 中实现 Multi-Tenancy

java - 如何使用 Java SDK 将目录与 AWS S3 同步?

java - 对于同一路径,JWT 身份验证可回退到 SAML2

java - 文件从未完全下载

android - 算法:停止无效条目进入 python 脚本中的竞赛

javascript - 如何编写一个名为 countDots(x) 的函数,该函数将字符串作为参数并返回它包含的点数 (.)

java - 如何在棋盘游戏中使用循环编写更短的代码

java - 天堂操作系统 : Tasker Java Function "setActiveProfile(java.lang.String)"