如何在kotlin @Parcelize中使用null

mol*_*kin 10 android parcelable kotlin kotlin-android-extensions

这是非常简单的代码:

@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())
    }
}
Run Code Online (Sandbox Code Playgroud)

我有可空的财产Test.inner.如果它不为null,代码工作正常,但是当它为null时,我有例外:

java.lang.NullPointerException: Attempt to invoke interface method 'void android.os.Parcelable.writeToParcel(android.os.Parcel, int)' on a null object reference
Run Code Online (Sandbox Code Playgroud)

怎么解决这个?也许我做错了什么.

mak*_*tar 6

该错误已被固定在科特林1.1.60.

  • Kotlin 1.3.11发生在我身上:/ (3认同)