当我运行以下代码来保存 JSON 时:
String regionObject = this.gson.toJson(parentRegion);
JsonFileInputOutput.saveObjectToTextFile(regionObject,
"./tests/model/util/test_saveRegionObject.txt");
然后我重新打开创建的 .txt 文件:
public void test_openRegionObject() throws IOException {
String regionAsString = JsonFileInputOutput
.openObjectInTextFile("./tests/model/util/test_saveRegionObject.txt");
Gson gson = new Gson();
Region LGNRegion = gson.fromJson(regionAsString, Region.class);
System.out.println(LGNRegion.toString());
}
它工作得很好。
但是,当我尝试将第二段代码放入不包含第一个的不同类时,我收到以下错误:
java.lang.RuntimeException Failed to invoke public model.MARK_II.Cell() with no args
Cell
是在类内部使用的自定义Region
类。这是Cell
该类的实现:
public abstract class Cell {
protected boolean isActive;
public Cell() {
this.isActive = false;
}
public boolean getActiveState() {
return this.isActive;
}
public void setActiveState(boolean isActive) {
this.isActive = isActive;
}
}
我的问题是如何修复此异常,以便我可以读取正确的序列化 JSON 作为我使用第一段代码创建的 JSON。