在Java 8中,方法可以创建为Lambda表达式,并且可以通过引用传递(通过一些工作).有大量的在线示例,lambdas被创建并与方法一起使用,但没有关于如何使用lambda作为参数的方法的示例.那是什么语法?
MyClass.method((a, b) -> a+b);
class MyClass{
//How do I define this method?
static int method(Lambda l){
return l(5, 10);
}
}
Run Code Online (Sandbox Code Playgroud) 目前正在进入Java 8 lambda表达式和方法引用.
我想传递一个没有args且没有返回值的方法作为另一个方法的参数.这就是我这样做的方式:
public void one() {
System.out.println("one()");
}
public void pass() {
run(this::one);
}
public void run(final Function function) {
function.call();
}
@FunctionalInterface
interface Function {
void call();
}
Run Code Online (Sandbox Code Playgroud)
我知道有一组预定义功能接口在java.util.function诸如Function<T,R>,但我没有找到一个不带任何参数,而不是产生结果.
我想简单地传递一个lambda(代码块)并在需要时执行它.如何executeLambda(...)在下面的代码中实现该方法(以及方法签名是什么):
public static void main(String[] args)
{
String value = "Hello World";
executeLambda(value -> print(value));
}
public static void print(String value)
{
System.out.println(value);
}
public static void executeLambda(lambda)
{
someCode();
lamda.executeLambdaCode();
someMoreCode();
}
Run Code Online (Sandbox Code Playgroud)