【问题标题】:Lambda type with unknown number of arguments具有未知数量参数的 Lambda 类型
【发布时间】:2017-06-24 22:33:18
【问题描述】:

我创建了一个地图,它将存储稍后调用的函数,它的类型如下所示:

Map<String, () -> Unit>

问题是,我不知道每个被存储的函数有多少个参数,或者这些参数的类型。

目前,映射类型Map&lt;String, () -&gt; Unit&gt; 只允许我存储没有参数且返回类型为 Unit 的函数。

我如何表示一个函数类型,它可以让我存储具有未知数量的参数和未知返回类型的函数,但它仍然必须是一个被存储的函数。

我正在寻找这样的东西:

Map<String, (T, X, Y, ...) -> V>

我如何在 Kotlin 中表示这种函数类型?

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    Kotlin 中所有的函数类型都实现了Function(https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function.html),所以你可以使用它或者它的子类

    【讨论】:

      【解决方案2】:

      您可以在列表中传递参数:

      Map<String, (List<Any>) -> Unit>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-01
        • 2014-05-15
        • 2011-05-20
        • 1970-01-01
        • 2018-06-13
        • 1970-01-01
        相关资源
        最近更新 更多