我正在将我的模型类重写为Kotlin
,它必须Parcelable
并在AIDL
中使用:
@Parcelize
data class MyCustomObject(val value1: String, val value2: String) : Parcelable
在编译过程中,它崩溃并显示错误:
错误:不兼容的类型:对象无法转换为我的自定义对象
并在生成的代码中指向此行:
if ((0!=_reply.readInt())) {
_result = com.mypackagename.MyCustomObject.CREATOR.createFromParcel(_reply);
}
我将此注释用于其他目的,没关系,仅在 AIDL 中我发现到目前为止不匹配。
任何想法出了什么问题?
编辑:5天后没有一条评论,我已经为这个问题创建了一个票证。
这是 Kotlin 中的一个错误,所以我将这个问题重定向到 JetBrains。 您可以在此处跟踪它:KT-25807。
发生这种情况,因为createFromParcel()
不返回类T
,而是返回Object
。
UPD
Parcelize 注释现在可以由 Google 维护,该问题已在 kotlin 版本 1.5.+ 中修复 https://issuetracker.google.com/issues/110131003