小编典典

通过Lambdas自执行匿名函数

java

在javascript中,存在创建匿名函数并立即调用它的常见模式(通常称为自执行匿名函数立即调用的函数表达式)。

使用Java 8 lambda,是否有标准方法可以复制此行为?有点像(() -> doSomething())()

这个问题基本上提出了相同的问题,但是对于Java7。我正在明确地寻找使用lambda的构造。


阅读 212

收藏
2020-11-01

共1个答案

小编典典

也不是没有声明类型。由于Java是静态类型的语言,并且函数不是一等公民,因此编译器需要知道lambda是什么 类型
。一个函数不能只是自由浮动的,它总是需要与一个类或一个类的实例相关联。

Runnable r = () -> {
    System.out.println("Hello world!");
};
r.run();

但是: 您可以将lambda转换为Runnable类型,并向编译器提示@FunctionalInterface您要实现的类型:

((Runnable)() -> {
    System.out.println("Hello world!");
}).run();

或不带花括号,使其成为一线式:

((Runnable)() -> System.out.println("Hello world!")).run();

我想那差不多就到了!

2020-11-01