Я написал программу для чтения и отображения файлов форм ГИС от GeoTools и хочу сохранить состояние моей программы.
Основной класс. java
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);
}
}
ReadWriteObject
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
не Serializable
. Как сохранить состояние моих программ в java?