Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以实现java(geotools)中存在并编译的Serializable类吗?_Java_Save_State_Serializable_Geotools - Fatal编程技术网

我可以实现java(geotools)中存在并编译的Serializable类吗?

我可以实现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

我编写了通过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 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请求