提问者:小点点

错误: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.NotSeri的异常是什么问题?


共3个答案

匿名用户

您必须在类定义中实现< code>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;

}

匿名用户

您需要实现可序列化标记接口

 public class EvaluationResult implements Serializable { .... }

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

 out.writeObject(ae);

匿名用户

您必须实现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;

本教程可能有用