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

时间:2016-04-08 08:16:39

标签: android parcelable

我的课程:

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];
        }
    };

从Parcel获取id有两种方法:

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

id = in.readInt();

我应该使用哪个?还是任何人?

1 个答案:

答案 0 :(得分:1)

函数readInt用于int值。整数类对象不仅仅是int。使用readValue。

你也可以认为 id 字段应该是Integer还是int就足够了。