是否可以检测闭包中的参数数量并相应地执行?

时间:2016-12-14 19:22:02

标签: java arrays java-8 closures

我有3x4x5(或更多维度)数组,我想让每个位置将坐标传递给lambda函数及其值。
但是我可以得到_D,3D,2D或1D闭包,我需要模拟(对于这个例子)12x5阵列和60个位置阵列。

在java中是否可以获得没有太多开销的参数数量并以这种方式调用它?我可以省略反思并以其他方式进行或者是不可避免的吗?

--- --- EDIT

使用varargs不是一个选项,因为之前定义了为操作创建的函数,或者我们不希望代码过于复杂。

因此,例如当我们有3D数组,通常3D闭包将通过(x,y,z,val){}访问然后对于2D闭包我需要识别这种类型的lambda并使用它像(x + y * X.length,Z,val)的

1 个答案:

答案 0 :(得分:0)

这并没有多大意义。每个变量都有一个类型。没有"关闭类型"。相反,lambda表达式可用于期望功能接口类型(具有恰好一个方法的接口)的上下文中,并且lambda表达式将计算为实现该接口的对象。

由于您只有一个方法具有已知接口,因此该方法具有已知签名且具有已知数量的参数。因此,你不知道参数的数量是没有意义的。

相关问题