我不明白为什么我的类不可序列化。正如您在下面的代码中看到的,我的类实现了 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
有什么解决办法吗?
最佳答案
问题是 PrintWriter
和 Scanner
不可序列化;你不能像这样序列化 I/O 连接。
如果您确实需要它们,请将它们作为局部变量移动到您使用它们的任何地方。不要将它们存储在类中。
关于java - Java 不可序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34775867/