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

时间:2014-07-14 02:05:16

标签: java android serializable notserializableexception

我已经搜索了一下但无法找到答案......我已经创建了一个类并成功将我班级的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;
    }
}

1 个答案:

答案 0 :(得分:0)

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

public Gate(){
}

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