Nulls可以传递给包裹吗?

时间:2015-12-19 11:48:04

标签: android parcelable parcel

是否可以在分配对象时将null写入Parcel,并在再次取消对象时再次返回null

假设我们有以下代码:

public class Test implements Parcelable {
    private String string = null;
    public Test(Parcel dest, int flags) {
        source.writeString(string);
    }
}

使用NullPointerException从包裹中读取此值时,我会获得Parcel.readString()吗?

或者我会获得null值吗?

2 个答案:

答案 0 :(得分:0)

就我而言  (科特林)

 override fun writeToParcel(parcel: Parcel, flags: Int) {
        parcel.writeInt(if (PapperId == null) -1 else PapperId)
        parcel.writeString( if (Nome == null) "" else Nome)
}

答案 1 :(得分:0)

如果您想将其他可能具有空值的数据类型(例如IntegerDoubleBoolean)写入包裹,则可以使用Parcel.writeSerializable()

从包裹中读取这些值时,必须将Parcel.readSerializable()返回的值转换为正确的数据类型。

Double myDouble = null;
dest.writeSerializable(myDouble);  // Write

Double readValue = (Double) dest.readSerializable();   // Read