1、建立一个java类TestLambda2
2、java8引入了一个新的操作符"->",该操作符将表达式拆分为两部分:左侧:Lambada表示表达式的参数列表右侧:Lambda表示所需要执行的功能
3、语法格式一:无参数,无返回值。() -> System.out.println("He造婷用痃llo Lambda!");package com.gwolf;import org.junit.Test;public class TestLambda2 { @Test public void test1() { Runnable r = () -> System.out.println("Hello Lambda!"); }}
4、语法格式二:有一个参数,无返回值。 @Test public void test2() { Consumer<String> consumer = (x) -> System.out.println(x); consumer.accept("我是帅哥"); }
5、语法格式三:若值有一个参数,小括号可以省略不写。@Test public void test2() { Consumer<String> consumer = x -> System.out.println(x); consumer.accept("我是帅哥"); }
6、语法格式四:有二个以上参数,有返回值,并且Lambda体中有多条语句。 @Test public void test4() { Compar锾攒揉敫ator<Integer> comparable = (x , y) -> { System.out.println("函数式接口"); return Integer.compare(x,y); }; }
7、语法格式五:有二个以上参数,有返回值,并且Lambda体中只有一条语句,return 和大括号都可以不写;@Test public void test5() { Comparator<Integer> comparable = (x , y) -> Integer.compare(x,y); }
8、语法格式六:lambda表达式倦虺赳式的参数列表数据类型可以省略不写,因为jvm编译器通过上下文推断出数据类型,即“类型推断”。@Test public void test6() { Comp锾攒揉敫arator<Integer> comparable = (Integer x ,Integer y) -> Integer.compare(x,y); }