內部類不能序列化的原因
阿新 • • 發佈:2018-12-23
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;
}
}