【问题标题】:How do you deserialize a serialized lambda function in kotlin?你如何反序列化 kotlin 中的序列化 lambda 函数?
【发布时间】:2021-07-28 06:40:49
【问题描述】:

我有一个 lambda 表达式:

val lambda: ((ArrayList<String>) -> Unit)

我把它作为一个可序列化的 Bundle 放入,如下所示:

putSerializable(LAMBDA, lambda as Serializable)

如何将 lambda 反序列化回函数类型:“((ArrayList) -> Unit)”?

我正在努力让它发挥作用:

            state.getSerializable(LAMBDA)?.also {
               val deserializedLambda: ((ArrayList<String>) -> Unit) = it
            }

“它”是可序列化的。但我需要以某种方式反序列化它以使其恢复为 ((ArrayList) -> Unit) 类型,这是变量“changes”的类型。

感谢您的帮助

【问题讨论】:

    标签: kotlin android-fragments lambda bundle serializable


    【解决方案1】:

    大概你需要一个演员表:it as (ArrayList) -&gt; Unit

    【讨论】:

    • 是的,就像做演员一样简单。谢谢,采纳为最佳答案。
    猜你喜欢
    • 2019-03-10
    • 1970-01-01
    • 2014-03-19
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多