【问题标题】:Can't read my class from file (Android)无法从文件中读取我的课程(Android)
【发布时间】:2014-09-03 21:42:54
【问题描述】:

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

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;
    }
}

【问题讨论】:

  • 你能重新编译一遍吗
  • java.io.WriteAbortedException哪里来的,是你文件的内容吗?
  • 您可以查看此答案以获取一些信息:stackoverflow.com/questions/17885968/…
  • Jigar,我构建了它并重新编译了几次.. Elliot,当我尝试读取内部存储中包含此类对象的已保存文件时抛出异常。迈克,我已经看过这篇文章了 - 对我没有帮助......无论如何都感谢你们

标签: java android serializable notserializableexception


【解决方案1】:

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

public Gate(){
}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 2016-08-03
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多