Android 中的 parcelable 如何知道在其构造函数中读取哪个变量?

How do parcelable in Android know which variable to read in its constructor?

从下面的代码可以看出,parcel 没有读取到 return 值的任何键。他们如何知道要读取什么并将其放入变量 someString1someString2 等等?

public SomeObject(Parcel in) {

   this.someString1 = in.readString();
   this.someString2 = in.readString();
   this.someInt = in.readInt();
   this.someString3 = in.readString();
   this.someInt2 = in.readInt();

}

如果我这样说呢。下面的代码会不会因为我改了读取顺序而出错?

public SomeObject(Parcel in) {

this.someString3 = in.readString();
this.someInt2 = in.readInt();
this.someString1 = in.readString();
this.someString2 = in.readString();
this.someInt = in.readInt();

}

是的,更改顺序肯定会导致问题。值是按顺序写入的,因此无论您在 writeToParcel() 中写入字段的顺序如何,您 都必须 在从 Parcel 中读取时以相同的顺序读回它们.