下面显示的代码片段有效。但是,我不确定它为什么有效。我不太明白 lambda 函数如何将信息传递到接口的逻辑。
控制权传递到哪里了?编译器如何理解n循环中的每个和message创建的每个?
这段代码编译并给出了预期的结果。我只是不知道怎么做。
import java.util.ArrayList;
import java.util.List;
public class TesterClass {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
names.add("Akira");
names.add("Jacky");
names.add("Sarah");
names.add("Wolf");
names.forEach((n) -> {
SayHello hello = (message) -> System.out.println("Hello " + message);
hello.speak(n);
});
}
interface SayHello {
void speak(String message);
}
}
森林海
墨色风雨
相关分类