Parcelable的readInt(),readFloat()等知道它们检索的是什么值?

时间:2017-11-13 01:54:13

标签: java android parcelable

如果你的类实现了parcelable,那么你就知道你需要一个构造函数来让系统根据它刚收到的parcel构建你的类。

所以通常像下面那样的构造函数必须被编写,这就是它有点令人困惑的地方:

public myClass(Parcel in){
   this.type = in.readInt();
   this.size = in.readInt();
}

你看,如果有一个参数,这些读取相关的方法就像这样调用:

   this.type = in.readInt(type);
   this.size = in.readInt(size);

然后它很清楚发生了什么,但相反,它们根本没有任何参数。所以我想知道:这应该怎么做?这些方法是否聪明"在某种程度上,你不必告诉他们要获得哪个领域,他们总能设法找到合适的领域?

还是顺序?如果我这样使用它:

   this.size = in.readInt();
   this.type = in.readInt();

我即将获得的领域都会搞砸了?如果是这样的话,这不是为了乞求错误吗?由于一个粗心的错误,我可能会在很长一段时间内做错事但只是在很长一段时间之后找到它?

1 个答案:

答案 0 :(得分:5)

订单很重要。必须以相同的顺序读取所有写入。

  

如果是这样的话,这不是在乞求错误吗?由于一个粗心的错误,我可能会在很长一段时间内做错事但只是在很长一段时间之后找到它?

确实