Java8中'()->{}'的类型是什么?
What is the type of '()->{}' in Java 8?
在Java8中,以下lambda的类型是什么???
() -> {}
这是一个不带任何参数且 returns 没有任何参数的函数。
不同的说法:
public class A {
static void a(){}
static void main(String[] args) {
???? a = A::a
}
}
我应该用什么替换问号?
在 Scala 中,我认为这是 Function0[Unit]
,但我在 Java 中找不到任何相似之处。
感谢斯图尔特的回答:
java.lang.Runnable a = () -> {};
既然你这么说了,似乎很明显...
与 Scala 不同,Java 中的 lambda 没有固定的类型。相反,它们采用您将变量声明为任何接口的类型,只要该接口恰好定义了一个抽象方法并且该方法具有与 lambda 相同的签名。
因此,在您的情况下,您需要一个定义不带参数的 void 方法的接口。 Runnable
就是其中一个例子。
在Java8中,以下lambda的类型是什么???
() -> {}
这是一个不带任何参数且 returns 没有任何参数的函数。
不同的说法:
public class A {
static void a(){}
static void main(String[] args) {
???? a = A::a
}
}
我应该用什么替换问号?
在 Scala 中,我认为这是 Function0[Unit]
,但我在 Java 中找不到任何相似之处。
感谢斯图尔特的回答:
java.lang.Runnable a = () -> {};
既然你这么说了,似乎很明显...
与 Scala 不同,Java 中的 lambda 没有固定的类型。相反,它们采用您将变量声明为任何接口的类型,只要该接口恰好定义了一个抽象方法并且该方法具有与 lambda 相同的签名。
因此,在您的情况下,您需要一个定义不带参数的 void 方法的接口。 Runnable
就是其中一个例子。