赞
踩
1.1、当一个接口只有一个方法时,可以使用lambda表达式实现这个接口。
1.2、当方法中只有一条语句时,可以不写大括号
1.3、方法中超过一条语句时,需要写大括号
interface Animal{
void play();
}
Animal animal = ()->{System.out.print("hello");}//当一个接口只有一个方法时,可以使用lambda表达式实现这个接口。
Animal animal2 = ()-> System.out.println();//当只有一条语句时,可以不写大括号
Animal animal3 = ()->{
int count = 1 + 1;
System.out.print(count);
}
Runnable runnable = ()->{
System.out.println("hello");
};//这里的()实现的是run()方法
不用lambda表达式的实现:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("hello");
}
}).start();
使用lambda表达式的实现:
new Thread(()->{
System.out.println("hello");
}).start();
这里为什么可以只写()->{}表示Runnable?因为Thread的构造方法中需要放一个Runnable类型的参数,然而()->{}这个lambda表达式就代表了一个Runnable,将它们拆分开就是下面这种写法:
Runnable runnable = ()->{
System.out.println("hello");
};
new Thread(runnable).start;
所以我们可以将它们合在一起写,于是就变成了:
new Thread(()->{
System.out.println("hello");
}).start();
4.当一个方法只有return语句时,可以省略大括号和return
interface Animal{
String say();
}
Animal animal = ()->"hello";
5.当方法只有一个参数时,可以省略括号,不需要写参数修饰符(注意,这里指可以省略参数的小括号)
interface Animal{
void say(String voice);
}
Animal animal = voice -> System.out.println(voice);
6.方法有参数个数超过一个,不能省略小括号
interface Animal{
void say(String voice,int num);
}
Animal animal = (voice,num) -> System.out.println(voice+"-->"+num);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。