我可以实现java(geotools)中存在并编译的Serializable类吗?
我编写了通过GeoTools读取和显示GIS形状文件的程序,我想保存程序的状态 Main class.java我可以实现java(geotools)中存在并编译的Serializable类吗?,java,save,state,serializable,geotools,Java,Save,State,Serializable,Geotools,我编写了通过GeoTools读取和显示GIS形状文件的程序,我想保存程序的状态 Main class.java Project myproject=new Project(); myproject.mapLayers=this.frame.getMapContext().getLayers(); Project.java import org.geotools.map.MapLayer; public class Project implements S
Project myproject=new Project();
myproject.mapLayers=this.frame.getMapContext().getLayers();
Project.java
import org.geotools.map.MapLayer;
public class Project implements Serializable{
public String name;
public MapLayer[] mapLayers;
public void save(String projectname){
ReadWriteObject.writeObject(projectname+".gpr",this);
}
public Project load(String projectname){
return (Project)ReadWriteObject.readObject(projectname);
}
}
读写对象
public class ReadWriteObject {
public static boolean writeObject(String filename, Object obj){
try {
FileOutputStream f = new FileOutputStream(new File(filename));
ObjectOutputStream o = new ObjectOutputStream(f);
// Write objects to file
o.writeObject(obj);
o.close();
f.close();
} catch (FileNotFoundException e) {
System.out.println("File not found");
return false;
} catch (IOException e) {
System.out.println("Error initializing stream");
return false;
}
return true;
}
}
出现错误DefaultMapLayer
不可序列化
。
如何用java保存我的程序状态?我只需以某种格式(XML、JSON)写出进入地图的图层和样式,然后再次读入以重新创建地图。实际上,您不需要存储程序的整个状态
或者,您可以在源代码中添加
序列化
。理想情况下,您应该找到所有需要序列化的类,这些类当前没有实现Serialize
,并提交一个pull请求 我只需以某种格式(XML、JSON)写出进入地图的图层和样式,然后再次读入以重新创建地图。实际上,您不需要存储程序的整个状态
或者,您可以在源代码中添加序列化
。理想情况下,您应该找到所有需要序列化的类,这些类当前没有实现Serialize
,并提交一个pull请求