in.readInt() 是否等于 Android 的 Parcelable 中的 (Integer) in.readValue(Integer.class.getClassLoader())?

Is in.readInt() equal to (Integer) in.readValue(Integer.class.getClassLoader()) in Parcelable of Android?

我的class:

public class XXX implements Parcelable {
    private Integer id;
    private String title;
    private String content;

...
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeValue(this.id);
        dest.writeString(this.title);
        dest.writeString(this.content);

    }

    protected XXX(Parcel in) {
        this.id = (Integer) in.readValue(Integer.class.getClassLoader());

        this.title = in.readString();
        this.content = in.readString();

    }

    public static final Parcelable.Creator<XXX> CREATOR = new Parcelable.Creator<XXX>() {
        @Override
        public XXX createFromParcel(Parcel source) {
            return new XXX(source);
        }

        @Override
        public XXX[] newArray(int size) {
            return new XXX[size];
        }
    };

有两种获取包裹id的方法:

this.id = (Integer) in.readValue(Integer.class.getClassLoader());

id = in.readInt();

我应该使用哪个?或者任何一个?

函数 readInt 用于 int 值。 Integer class 对象不仅仅是 int。为它使用 readValue。

你也可以想想id字段是Integer还是int就可以了