我正在尝试在 java 中编写一个方法,该方法将另一个方法作为参数传递。
这是main中的方法调用:
Functions.print("total",Functions.compute(scoreArray),Functions.find(scoreArray));
到目前为止,我将此作为方法签名:
public void print(String str, ...)
我已经编写了计算和查找方法。我不知道如何将它们作为参数输入。
是的,但不是直接的。创建接口:
public interface MyFuncFromAToB{
public SomeClass calculate(SomeOtherClass in);
}
并接受。
在 Java 8 上,您将能够使用 Lambda。当出现这种情况时,请继续接受相同的接口(它必须只有一个方法),您将收到带有该签名的 lambda 和方法指针。
你目前不能用 Java 来做(嗯,你可以,但它真的很迂回)
有一个 guava 库,可以更轻松地使用集合进行函数式编程: https ://code.google.com/p/guava-libraries/wiki/FunctionalExplained
Java 和 javascript 是两种截然不同的语言。Java(当前)没有任何函数式编程特性;方法(函数)不是对象,因此不能像对象一样传递。