第一种:无参,无返回值
@Test
public void test1(){
Runnable r1 = () -> System.out.println("无参,无返回值lambda");
r1.run();
}
第二种:有一个参数,但无返回值
@Test
public void test2(){
Consumer<String> con = (String str) -> {
System.out.println(str);
};
con.accept("有一个参数,但无返回值");
}
第三种:类型推断,由编译器自己推断出类型,无需指定数据类型
@Test
public void test3(){
Consumer<String> con = s -> {
System.out.println(s);
};
con.accept("类型推断");
}
第四种:当只有一个参时,参数的小括号可以省略
@Test
public void test4(){
Consumer<String> con = s -> {
System.out.println(s);
};
con.accept("当参数只有一个时,小括号可以省略");
}
第五种:参数可以是多个(大于等于两个),且执行语句不止一条,并且方法有返回值
@Test
public void test5(){
Comparator<Integer> compare = (o1, o2) -> {
System.out.println(o1);
System.out.println(o2);
return o1.compareTo(o2);
};
System.out.println(compare.compare(1,3));
}
第六种:方法体只有一条执行语句,如果有return和大括号,那么都可以省略
@Test
public void test6(){
Comparator<Integer> compare = (o1, o2) -> o1.compareTo(o2);
System.out.println(compare.compare(1,3));
}