繁体   English   中英

错误:java.io.NotSerializableException

[英]An error: java.io.NotSerializableException

我有一个类定义如下

public class EvaluationResult implements java.io.Serializable {
    public String ClassName;
    public boolean FeedbackDirected;
    public double HV;
    public double Spread;
    public double PercentageOfCorrectness;
    public double TimeElapsed;
    public ArrayList<double[]> ParetoFront;


}

这样做

public static void main(String[] args) throws Exception {
         EvaluationResult ae=new EvaluationResult();
         FileOutputStream fileOut =new FileOutputStream("result.txt");
         ObjectOutputStream out = new ObjectOutputStream(fileOut);
         out.writeObject(fileOut);
         out.close();
         fileOut.close();
     }

给我java.io.NotSerializableException是什么问题?

您需要实现Serializable标记接口

 public class EvaluationResult implements Serializable { .... }

您应该编写对象(而不是文件流):

 out.writeObject(ae);

您必须在类定义中实现Serializable

public class EvaluationResult implements Serializable {
    public String ClassName;
    public boolean FeedbackDirected;
    public double HV;
    public double Spread;
    public double PercentageOfCorrectness;
    public double TimeElapsed;
    public ArrayList<double[]> ParetoFront;

}

您必须实现Serializable接口...这意味着实现以下内容:

在序列化和反序列化过程中需要特殊处理的类必须实现具有以下确切签名的特殊方法:

 private void writeObject(java.io.ObjectOutputStream out) throws IOException
 private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException;
 private void readObjectNoData() throws ObjectStreamException;

教程可能有用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM