首页 > 解决方案 > Kotlin - 将对象转换为 Parcelable

问题描述

嗨,我有一个普通的数据类

data class Message(
    val code: Int,
    val message: String?
)

和它的@Parcelize 版本

@Parcelize
data class MessagePresentation(
    val code: Int,
    val message: String?
): Parcelable

现在如何编写一个转换器,以便我可以将类 1 映射到 1?

标签: androidkotlin

解决方案


您不需要为转换创建一些特殊的逻辑。您唯一应该做的就是MessagePresentation使用Message对象的字段创建对象。

...
val message = Message(code, message)
val messagePresentation = MessagePresentation(message.code, message.message)
...

例如,您可以使用arg在MessagePresentation类中指定其他构造函数。Message

您也可以像这样创建扩展功能

fun Message.toPresentation(): MessagePresentation =
    MessagePresentation(
        code = code
        message = message
    )

推荐阅读