1. 程式人生 > >內部類不能序列化的原因

內部類不能序列化的原因

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