lambda表达式
说白了就是一个函数,一个匿名函数, 也就是一个类只有一个函数,表达式重写其方法。
在java中,一个完整的函数声明如下
返回值类型 方法名(参数1、参数2...,参数N){
方法体
return 结果
}
那么,lambda表达式的完整语法结构是怎么样的呢?
(参数1、参数2...,参数N)->{
表达式体(可以理解为方法体)
return 结果
}
基于完整的表达式语句,lambda又针对各种情况有简单的演变,这个演变的原则只有一个:能省略就省略
demo:G:\project\demo\basic\Lambda
一.无参数,无返回值(lambda体只有一条语句,大括号可以不写)
public static void main(String[] args) {
Runnable runnable = new Runnable() {
@Override
public void run() {
System.out.println("hellow world");
}
};
Runnable r = () -> System.out.println("Hellow lambda");
runnable.run();
r.run();
}
输出:
hellow world
Hellow lambda
二.一个参数,无返回值(小括号可以不写)
public static void main(String[] args) {
Consumer<String> c = (x) -> System.out.println("x");
c.accept("haha");
}
输出: haha
三.2个以上参数,Lamada体多条语句,有返回值
public static void main(String[] args) {
Comparator<Integer> c = (x,y) ->{
System.out.println("语句1");
System.out.println("语句2");
return Integer.compare(x,y);
};
System.out.println(c.compare(1,2));
}
输出:
语句1
语句2
-1