好的,所以我有一个要保存的 Region 类对象。我已经使 Region 和 Region 类中的所有类都实现了可序列化。我的保存方法工作得很好,但是当我尝试使用以下方法打开保存的文件时:
// ----------------------------------------------------------
/**
* Open a Region object with the given fileName.
*
* @param fileName
* @return The desired Region object.
*/
public static Region openRegion(String fileName)
{
try
{
FileInputStream fis = new FileInputStream(fileName + ".txt");
ObjectInputStream ois = new ObjectInputStream(fis);
Object readObject = ois.readObject();
ois.close();
if (readObject != null && readObject instanceof Region)
{
return (Region)readObject;
}
}
catch (IOException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
return null;
}
但后来我得到以下错误: java.io.InvalidClassException: htm.model.Cell; java.io.ObjectStreamClass$ExceptionInfo.newInvalidClassException(Unknown Source) 在 java.io.ObjectStreamClass.checkDeserialize(Unknown Source) 处没有有效的构造函数
Cell 对象是 Region 对象中的一个类,但它肯定有一个构造函数,其工作方式如下: public Cell(Column column, int columnIndex) { super(column, columnIndex); this.predictionSteps = 0; this.predictingState = false; this.previousPredictingState = false; this.learningState = 假;this.previousLearningState = false; this.listOfDistalSegments = new ArrayList(5); }
对不起,很长的问题,但我不知道我做错了什么。谢谢!