Parcelize: Add an intrinsic to access Parcelable CREATOR fields
Fixes KT-19853. The CREATOR field is a static field on a Parcelable class which is not visible from Kotlin since the necessary metadata would have to be in a Companion object which may not exist. This commit adds a [parcelableCreator] function to kotlinx.parcelize, which is optimized to a direct field access whenever possible.
This commit is contained in:
committed by
Alexander Udalov
parent
897c09bf8d
commit
fc013c6b9f
+1
-1
@@ -42,7 +42,7 @@ fun box() = parcelTest { parcel ->
|
||||
parcel.unmarshall(bytes, 0, bytes.size)
|
||||
parcel.setDataPosition(0)
|
||||
|
||||
val test2 = readFromParcel<Test>(parcel)
|
||||
val test2 = parcelableCreator<Test>().createFromParcel(parcel)
|
||||
|
||||
assert(test.a == "Abc" && test.b == "Abc" && test.c == "Abc" && test.d == "Abc")
|
||||
assert(test2.a == "3" && test2.b == "3" && test2.c == "Abc" && test2.d == "ABC")
|
||||
|
||||
Reference in New Issue
Block a user