我有一个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
}
在写/读包裹时保持秩序重要吗?又为什么呢?
最佳答案
是的,它是。写入变量的顺序由您决定,您可以根据需要进行操作,但是必须以相同的顺序读取它们。如果顺序不同,它将给您运行时崩溃。
为什么? 机制是盲目的,因此它信任您以正确的顺序获取它。
主要是为了提高性能,因为它不必搜索特定的元素。
您可以在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);
}
关于java - 在Parcelable中进行包裹读/写操作时,可变顺序是否重要?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43800772/