我有Parcelable
类的以下实现:
public class DemoModel implements Parcelable {
private String para1;
private int para2;
public DemoModel(){}
protected DemoModel(Parcel in) {
para1 = in.readString();
para2 = in.readInt();
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(para1);
parcel.writeInt(para2);
}
//other methods
}
在写入/读取包裹时保持秩序是否重要?为什么?
答案 0 :(得分:9)
是的,。写入变量的顺序取决于您,您可以根据需要进行操作,但必须以相同的顺序读取它们。如果订单不同,它会给你运行时崩溃。
为什么?机制是盲目的,所以它相信你能以正确的顺序获得它。
主要是为了获得性能优势,因为它不必搜索特定元素。
您可以在Parcelable
界面中看到,它创建的数组大小包含您放入地块的多个元素。
public interface Creator<T> {
/**
* Create a new array of the Parcelable class.
*
* @param size Size of the array.
* @return Returns an array of the Parcelable class, with every entry
* initialized to null.
*/
public T[] newArray(int size);
}
答案 1 :(得分:0)