参数个数未知的Lambda类型
我创建了一个映射,它将存储将在稍后调用的函数,其类型如下所示:
Map<String, () -> Unit>
事情是,我不知道每个函数被存储了多少个参数,或者这些参数的类型。
目前地图类型Map<String, () -> Unit>
将只允许我存储没有参数和返回类型为Unit的函数。
我该如何表示一个函数类型,它可以让我存储具有未知数量的参数和未知的返回类型的函数,但它仍然是一个存储的函数。
像这样的事情是我正在寻找的东西:
Map<String, (T, X, Y, ...) -> V>
我如何在Kotlin中表示这种功能类型?
Kotlin中的所有函数类型都实现了Function
( https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-function.html ),因此您可以使用它或其子类
你可以在列表中传递参数:
Map<String, (List<Any>) -> Unit>