内部类不能序列化的原因

来源:互联网 发布:英克软件 下载 编辑:程序博客网 时间:2024/05/16 15:31

android 编写两个Activity间通过Intent传递数据的时候,

报了一个java.lang.RuntimeException: Parcelable encountered IOException writing serializable object (name = com.hdu.myshop.activity.GoodsSelectListActivity$Data)的错误。

原因是内部类不能序列化,因为内部类可以访问外部类所有的成员变量,内部类有外部类的一个引用。所以序列化的时候也必须序列化外部类的成员变量,使其实现serializable接口。

在原本的Activity类的外,建一个public的保存数据的Data类,传递数据就没有问题了

public class Data implements Serializable{

/**

*/
private static final long serialVersionUID = -6798751495700613794L;
/**

*/

private String name;
private String brand;
private String price;
private String buyPrice;
private String amount;

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getBuyPrice() {
return buyPrice;
}
public void setBuyPrice(String buyPrice) {
this.buyPrice = buyPrice;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}


0 0
原创粉丝点击