我已经搜索了一下但无法找到答案......我已经创建了一个类并成功将我班级的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;
}
}
答案 0 :(得分:0)
Serializable需要一个默认的构造函数,没有参数。所以一定要添加:
public Gate(){
}
这是必需的,因为如果没有指定一个构造函数,编译器只会生成一个默认构造函数。序列化总是调用默认构造函数,然后通过getter和setter填充对象。