无法从文件中读取我的课程 (Android)



我一直在寻找一点,找不到答案…我已经创建了一个类,并成功地将我的类的数组列表保存到一个文件,但当我试图读取这个文件时,我一直得到:

E/Reading file(14768): java.io.WriteAbortedException: Read an异常;java.io.NotSerializableException:il.co.hyperactive.callmaagansmallgate.Gate

这是我的班级:

public class Gate implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 3L;
    private double latitude;
    private double longitude;
    private String name;
    private String phoneNumber;
    public Gate(String name, double longitude, double latitude,
            String phoneNumber) {
        this.name = name;
        this.longitude = longitude;
        this.latitude = latitude;
        this.phoneNumber = phoneNumber;
    }
    public Gate(String name) {
        this.name = name;
    }
    public void setPlace(double latitude, double longitude) {
        this.longitude = longitude;
        this.latitude = latitude;
    }
    public String toString() {
        return name + "nLatitude:" + latitude + "nLongitude:" + longitude
                + "nNumber:" + phoneNumber;
    }
    public double getLatitude() {
        return latitude;
    }
    public void setLatitude(double latitude) {
        this.latitude = latitude;
    }
    public double getLongitude() {
        return longitude;
    }
    public void setLongitude(double longitude) {
        this.longitude = longitude;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPhoneNumber() {
        return phoneNumber;
    }
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}

Serializable需要一个默认构造函数,没有参数。所以一定要加上:

public Gate(){
}

这是必需的,因为编译器只在没有指定默认构造函数时才生成默认构造函数。序列化总是调用默认构造函数,然后通过getter和setter填充对象。

相关内容

  • 没有找到相关文章

最新更新