我只是在学习Java,我以前在Objective中开发过应用程序。我喜欢“块”的概念,因为它们允许在某些事情发生后运行代码。
例如,在SpriteKit应用程序中执行块,该应用程序调用场景myScene中的方法helloWorld
[myScene runAction:[SKAction sequence:@[[SKAction waitForDuration:5], [SKAction runBlock:^{
[myScene helloWorld];
}]]]];在Java中有类似于块的东西吗?如果是的话,我将如何使用它?语法是什么..。
我听说过一些关于“闭包”的内容,但我不太确定它们是什么,也不知道如何使用它们。
发布于 2015-10-07 16:57:31
在Java中,这样做的方法是使用一个接口。最基本的接口是Runnable,它有一个方法run。
语法是什么..。 用它作为函数参数?
void foo(Runnable r)打电话给功能中的阻塞?
r.run();给这个块分配一个值?
在Java 8之前,您必须这样做:
Runnable r = new Runnable() {
@Override
public void run() {
// do something
}
}现在你可以做的就是:
Runnable r = () -> { // do something }涉及->的表达式称为lambda。brakets ()是编写任何参数的地方,但是Runnable的方法run没有任何参数。您也可以将Runnable传递给方法,而无需提及Runnable。
foo(() -> { // do something });Java 8引入了许多新的接口,在这些接口中,方法可以返回值或接受参数。
https://stackoverflow.com/questions/32997887
复制相似问题