我有一个如下定义的类
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的异常
是什么问题?
您必须在类定义中实现< 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;
本教程可能有用