函数类型(T1,T2,..,Tn)-> R与函数FunctionN之间的关系

时间:2018-09-09 15:53:39

标签: kotlin

可以肯定地说,(T1,T2,..,Tn) -> R形式的函数类型在JVM上总是被解释为interface Function[n]<T1,T2,..,Tn,R>吗?

编辑:撰写的what I learned

1 个答案:

答案 0 :(得分:1)

是的,主要是。 FunctionN接口是函数类型的JVM后端表示。

一种更正是(T1, T2, ..., Tn) -> R类型由Function[n]<T1, T2, ...Tn, R>而不是Function[n + 1]<...>表示。

对于具有22个或更少参数的函数,这是正确的,而具有23个或更多参数的函数全部由单个特殊接口表示。

您可以在此规范文档中找到有关设计的一些说明:(link)