如何在 kotlin @Parcelize 中使用 null
How to use null with kotlin @Parcelize
这里是非常简单的代码:
@Parcelize
data class Inner(val a: Int): Parcelable
@Parcelize
data class Test(val a: Int, val inner: Inner?): Parcelable
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun testParcel() {
val test = Test(0, null)
val parcel = Parcel.obtain()
parcel.writeParcelable(test, test.describeContents())
}
}
我可以为空 属性 Test.inner
。如果它不为空,代码工作正常,但当它为空时,我有例外:
java.lang.NullPointerException: Attempt to invoke interface method 'void android.os.Parcelable.writeToParcel(android.os.Parcel, int)' on a null object reference
如何解决?可能是我做错了。
Kotlin 1.1.60 中的错误 fixed。
这里是非常简单的代码:
@Parcelize
data class Inner(val a: Int): Parcelable
@Parcelize
data class Test(val a: Int, val inner: Inner?): Parcelable
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun testParcel() {
val test = Test(0, null)
val parcel = Parcel.obtain()
parcel.writeParcelable(test, test.describeContents())
}
}
我可以为空 属性 Test.inner
。如果它不为空,代码工作正常,但当它为空时,我有例外:
java.lang.NullPointerException: Attempt to invoke interface method 'void android.os.Parcelable.writeToParcel(android.os.Parcel, int)' on a null object reference
如何解决?可能是我做错了。
Kotlin 1.1.60 中的错误 fixed。