我有以下实现Parcelable
的数据类:
data class Car(
val createdAt: String? = "",
val updatedAt: String? = "",
val id: String? = "",
val name: String? = "",
val user: User? = User()
)
在此数据类中,有时user
属性可以是用户的ID(字符串),有时可以是用户对象本身。
是否有任何方法可以实现Parcelable,并指示该值可以是String还是Object? (另一个数据模型)
不太确定这是否是您问题的正确答案,但我认为密封的课程可能会对您有所帮助。基本上,您可以定义一个MutableUser
(用户或字符串),并且MutableUser的每个子类都应实现Parcelable
。
sealed class MutableUser : Parcelable {
@Parcelize
class UserAttribute(val user: User) : MutableUser()
@Parcelize
class SimpleAttribute(val userId: String) : MutableUser()
}
然后,您可以在汽车数据模型中使用此MutableUser
,如下所示:
@Parcelize
data class Car(
val createdAt: String? = "",
val updatedAt: String? = "",
val id: String? = "",
val name: String? = "",
val user: MutableUser
) : Parcelable