一尘不染

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

java

如果您的类实现了可打包的,那么您就知道系统需要一个构造函数来根据刚刚收到的包裹构造您的类。

因此,通常必须像下面这样构造一个构造函数,这会使它有些混乱:

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();

我要去的田地都弄乱了吗?如果是这种情况,这不是在乞求错误吗?由于粗心大意的错误,我可能会做错很长时间的事情,却又过了一段时间才发现呢?


阅读 214

收藏
2020-12-03

共1个答案

一尘不染

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

如果是这种情况,这不是在乞求错误吗?由于粗心大意的错误,我可能会做错很长时间的事情,却又过了一段时间才发现呢?

确实

2020-12-03