为什么 java.lang.Integer 在 Android Studio 的自动 Parcelable 实现中被忽略?
Why is java.lang.Integer ignored in auto Parcelable implementation by Android Studio?
这是 Android Studio 生成的自动 Parcelable
实施。它以某种方式总是忽略类型为 Integer
的 resultCode
public class TestParceable implements Parcelable {
private String message;
private Integer resultCode; //an Integer
protected TestParceable(Parcel in) {
message = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<TestParceable> CREATOR = new Creator<TestParceable>() {
@Override
public TestParceable createFromParcel(Parcel in) {
return new TestParceable(in);
}
@Override
public TestParceable[] newArray(int size) {
return new TestParceable[size];
}
};
}
另一方面,如果我将 resultCode
的类型更改为 int
,自动 Parcelable
实现会考虑它。
public class TestParceable implements Parcelable {
private String message;
private int resultCode; //an int
protected TestParceable(Parcel in) {
message = in.readString();
resultCode = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
dest.writeInt(resultCode);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<TestParceable> CREATOR = new Creator<TestParceable>() {
@Override
public TestParceable createFromParcel(Parcel in) {
return new TestParceable(in);
}
@Override
public TestParceable[] newArray(int size) {
return new TestParceable[size];
}
};
我是不是遗漏了什么,或者这是 Android Studio 错误?
这是一个已针对 Studio 2.4 修复的错误 (https://code.google.com/p/android/issues/detail?id=233034)。
这是 Android Studio 生成的自动 Parcelable
实施。它以某种方式总是忽略类型为 Integer
resultCode
public class TestParceable implements Parcelable {
private String message;
private Integer resultCode; //an Integer
protected TestParceable(Parcel in) {
message = in.readString();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<TestParceable> CREATOR = new Creator<TestParceable>() {
@Override
public TestParceable createFromParcel(Parcel in) {
return new TestParceable(in);
}
@Override
public TestParceable[] newArray(int size) {
return new TestParceable[size];
}
};
}
另一方面,如果我将 resultCode
的类型更改为 int
,自动 Parcelable
实现会考虑它。
public class TestParceable implements Parcelable {
private String message;
private int resultCode; //an int
protected TestParceable(Parcel in) {
message = in.readString();
resultCode = in.readInt();
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(message);
dest.writeInt(resultCode);
}
@Override
public int describeContents() {
return 0;
}
public static final Creator<TestParceable> CREATOR = new Creator<TestParceable>() {
@Override
public TestParceable createFromParcel(Parcel in) {
return new TestParceable(in);
}
@Override
public TestParceable[] newArray(int size) {
return new TestParceable[size];
}
};
我是不是遗漏了什么,或者这是 Android Studio 错误?
这是一个已针对 Studio 2.4 修复的错误 (https://code.google.com/p/android/issues/detail?id=233034)。