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就可以了
我的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就可以了