さて、保存したいクラスRegionのオブジェクトがあります。Regionを作成し、Regionクラス内のすべてのクラスにSerializableを実装しました。私の保存方法は完全に正常に機能しますが、次の方法で保存したファイルを開こうとすると、次のようになります。
// ----------------------------------------------------------
/**
* 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)at 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 = false; this.previousLearningState = false; this.listOfDistalSegments = new ArrayList(5); }
長い質問で申し訳ありませんが、何が間違っているのかわかりません。ありがとう!