可以肯定地说,(T1,T2,..,Tn) -> R
形式的函数类型在JVM上总是被解释为interface Function[n]<T1,T2,..,Tn,R>
吗?
编辑:撰写的what I learned。
答案 0 :(得分:1)
是的,主要是。 FunctionN
接口是函数类型的JVM后端表示。
一种更正是(T1, T2, ..., Tn) -> R
类型由Function[n]<T1, T2, ...Tn, R>
而不是Function[n + 1]<...>
表示。
对于具有22个或更少参数的函数,这是正确的,而具有23个或更多参数的函数全部由单个特殊接口表示。
您可以在此规范文档中找到有关设计的一些说明:(link)