Lambda表達式(1)
阿新 • • 發佈:2018-05-12
情況 例子 fly 裏的 駕駛 運行 pre lambda表達式 system
今天復習Lambda表達式,因為這個是java8的新特性,所以JDK和IDE弄了好久,現在才剛弄好。
Lambda表達式是java8的新特性,支持將代碼塊作為方法參數,Lambda表達式允許使用更簡潔的方式來創建只有一個抽象方法的接口(函數式接口)的實例,其中,被大家都知道的就是使用Lambda表達式創建Thread實例。這種方式大大簡潔化了大家的代碼。
Lambda表達式由三部分組成,形參列表,箭頭"->",代碼塊。其中,形參列表允許省略形參類型,如果只有一個新參,甚至形參列表的圓括號也可以省略。箭頭必須使用英文的畫線和大於號。代碼塊就是處理行為,才某些特殊情況下,可以省略花括號和return關鍵字。
下面就一個簡單例子來具體說一下,代碼如下:
package LambdaTrain; public class demo1 { /* * 測試使用的代碼,分別要傳入各自的參數 */ public void eat(Eatable e) { System.out.println(e); e.taste(); } public void drive(Flyable f) { System.out.println("我正在駕駛:"+f); f.fly("【碧空如洗的日子】"); } public void test(Addable add) { System.out.println("5與3的和為:"+add.add(5, 3)); } /* * 主方法,其中的方法參數都是使用lambda表達式 */ public static void main(String[] args) { demo1 demo1=new demo1(); //lambda表達式的代碼只只有一句,可以省略“{}” //這裏的lambda表達式實際上被當成任意的類型,具體的類型取決於運行環境的需要 demo1.eat(()->System.out.println("蘋果的味道不錯")); //方法的形參只有一個,可以省略“()” weather是接口方法的形參 demo1.drive(weather->{ System.out.println("今天的天氣是:"+weather); System.out.println("直升機飛行平穩"); }); //代碼只有一句,可以省略“{}”,同時也可以省略return關鍵字 a+b是返回值 demo1.test((a,b)->a+b); } } /* * 測試使用的接口,只有一個抽象方法的接口(函數式接口) */ interface Eatable { void taste(); } interface Flyable { void fly(String weather); } interface Addable { int add(int a,int b); }
上面就是例子的代碼,有一些不懂的地方都寫了註釋了。Lambda表達式其實只是一個工具,具體的學習還是要和其他的學習放在一起,比如線程的學習中會用到Lambda表達式。就這樣吧,結束。
Lambda表達式(1)