public class A {
interface Interface{
void print();
}
public static void main(String[] args) {
Interface i=()->{System.out.println("1");System.out.println("2");System.out.println("3");System.out.println("4");};
i.print();
}
}
output:
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
当我删除像这样的花括号:
public class A {
interface Interface{
void print();
}
public static void main(String[] args) {
Interface i=()->System.out.println("1");System.out.println("2");System.out.println("3");System.out.println("4");
i.print();
}
}
output:
2
3
4
1
Run Code Online (Sandbox Code Playgroud)
我知道当我们想要实现多于1个语句时,我们必须使用大括号.当我们删除大括号时,应用程序仍在编译,但我的问题是为什么第二个语句首先执行而第一个语句为最后一个?我找不到任何解释.
Interface i=()->System.out.println("1");System.out.println("2");System.out.println("3");System.out.println("4");
i.print();
Run Code Online (Sandbox Code Playgroud)
大多数表达式都不是lambda的一部分.Java不会将换行视为重要行,因此这相当于
Interface i=()->System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
i.print();
Run Code Online (Sandbox Code Playgroud)
现在它更清楚它正在做什么.