Lambda表达式实际上就是一个接口的实现。这个接口必须只有一个需要实现的方法,一般称这个接口为函数式接口。当这个接口被使用的次数非常少的时候,我们就可以使用Lambda表达式来实现。这样有利于简化代码。
package Thread;
/**
* Lambda 表达式
*
* @author zhaoy
*
*/
public class Test05_Lambda {
public static void main(String[] args) {
// 多行代码
new Thread(() -> {
for (int i = 0; i < 50; i++) {
System.out.println("看书");
}
}).start();
// 只有一行代码
new Thread(() -> System.out.println("种树")).start();
for (int i = 0; i < 50; i++) {
System.out.println("看电影");
}
// 只有一个形参
fa f1 = (int a) -> {
System.out.println("Lambda表达式只有一个形参!" + a);
};
f1.one(1);
// 可以省略形参类型,会自动匹配
fa f2 = (a) -> {
System.out.println("Lambda表达式只有一个形参!" + a);
};
f2.one(2);
// 当只有一个形参时,也可以省略()
fa f3 = a -> {
System.out.println("Lambda表达式只有一个形参!" + a);
};
f3.one(3);
// 两个或两个以上的形参
mo m1 = (int a, int b) -> {
System.out.println("Lambda表达式有多个形参!" + a + "-" + b);
};
m1.one(1, 2);
// 两个或两个以上的形参,也可以省略参数类型
mo m2 = (a, b) -> {
System.out.println("Lambda表达式有多个形参!" + a + "-" + b);
};
m2.one(3, 4);
// 有返回值
par par1 = (a, b) -> {
return a + b;
};
int sum = par1.one(2, 4);
System.out.println("Lambda表达式有返回值!" + sum);
}
}
interface fa {
void one(int a);
}
interface mo {
void one(int a, int b);
}
interface par {
public abstract int one(int a, int b);
}