语法:两种方式:
(parameters) -> expression 或
(parameters) -> { statements; }
1、parameters:相当于形参,当只有一个参数时可以不写括号,可以使用()表示空形参,不接受任何参数,
2、->:可理解为“被用于”的意思
3、statements:操作这个patameters参数的逻辑;
以下是一个完整的代码示例:
package com.lambda.zh;
import java.util.ArrayList;
import java.util.List;
@FunctionalInterface
interface MyThirdLbd<C,S> {
S show(String cl,String sz);
}
class ThirdImpl implements MyThirdLbd{
public String show(String cz,String sz){
return “普通方式实现”;
}
}
class usualClass{
static MyThirdLbd<String,String> mt =(cl,sz)->{
return new Apple(cl,sz).getColor();
};
public static void main(String[] args) {
System.out.println(mt.show(“red”,“1”));
List list =new ArrayList();
list.add(“10”);
list.add(“21”);
list.add(“32”);
for(int i = 0;i<list.size();i++){
System.out.println("普通方式遍历 "+list.get(i));
}
System.out.println("lambda方式如下:");
list.forEach((str)->{
System.out.println(str);
});
}
}
class Apple{
String color;
String size;
Apple(String color,String size){
this.color=color;
this.size=size;
}
String getColor(){
return this.color;
}
}
理解:
lambda表达式本身就是某个接口的实现
直接使用某个接口的对象接收这个lambda表达式的返回值;
MyInterface myIn = (…)->{
…
}