0

我一直在搜索,但找不到答案......我创建了一个类并成功地将我的类的 ArrayList 保存到一个文件中,但是当我尝试读取这个文件时,我不断得到:

E/读取文件(14768):java.io.WriteAbortedException:读取异常;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;
    }
}
4

1 回答 1

0

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

public Gate(){
}

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

于 2015-07-16T09:04:31.983 回答