是否可以在分配对象时将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
值吗?
答案 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)
如果您想将其他可能具有空值的数据类型(例如Integer
,Double
,Boolean
)写入包裹,则可以使用Parcel.writeSerializable()
。
从包裹中读取这些值时,必须将Parcel.readSerializable()
返回的值转换为正确的数据类型。
Double myDouble = null;
dest.writeSerializable(myDouble); // Write
Double readValue = (Double) dest.readSerializable(); // Read