java,lambda
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
java的lambda表達式是什麼?下面就一起來了解一下吧~
Lambda 表達式被熟稱爲:閉包,是推動 Java 8 發佈的一個新特性,使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。
語法
lambda 表達式的語法格式如下:
(parameters) -> expression或(parameters) ->{ statements; }以下是lambda表達式的重要特徵:
可選類型聲明:不需要聲明參數類型,編譯器可以統一識別參數值。
可選的參數圓括號:一個參數無需定義圓括號,但多個參數需要定義圓括號。
可選的大括號:如果主體包含了一個語句,就不需要使用大括號。
可選的返回關鍵字:如果主體只有一個表達式返回值則編譯器會自動返回值,大括號需要指定表達式返回了一個數值。
Lambda 表達式實例
Lambda 表達式的簡單例子:// 1. 不需要參數,返回值爲 5 () -> 5 // 2. 接收一個參數(數字類型),返回其2倍的值 x -> 2 * x // 3. 接受2個參數(數字),並返回他們的差值 (x, y) -> x – y // 4. 接收2個int型整數,返回他們的和 (int x, int y) -> x + y // 5. 接受一個 string 對象,並在控制檯打印,不返回任何值(看起來像是返回void) (String s) -> System.out.print(s)
在 Java8Tester.java 文件輸入以下代碼:
Java8Tester.java 文件public class Java8Tester { public static void main(String args[]){ Java8Tester tester = new Java8Tester(); // 類型聲明 MathOperation addition = (int a, int b) -> a + b; // 不用類型聲明 MathOperation subtraction = (a, b) -> a - b; // 大括號中的返回語句 MathOperation multiplication = (int a, int b) -> { return a * b; }; // 沒有大括號及返回語句 MathOperation division = (int a, int b) -> a / b; System.out.println("10 + 5 = " + tester.operate(10, 5, addition)); System.out.println("10 - 5 = " + tester.operate(10, 5, subtraction)); System.out.println("10 x 5 = " + tester.operate(10, 5, multiplication)); System.out.println("10 / 5 = " + tester.operate(10, 5, division)); // 不用括號 GreetingService greetService1 = message -> System.out.println("Hello " + message); // 用括號 GreetingService greetService2 = (message) -> System.out.println("Hello " + message); greetService1.sayMessage("Runoob"); greetService2.sayMessage("Google"); } interface MathOperation { int operation(int a, int b); } interface GreetingService { void sayMessage(String message); } private int operate(int a, int b, MathOperation mathOperation){ return mathOperation.operation(a, b); }}
執行以上腳本,輸出結果爲:
$ javac Java8Tester.java$ java Java8Tester10 + 5 = 1510 - 5 = 510 x 5 = 5010 / 5 = 2Hello RunoobHello Google
使用 Lambda 表達式需要注意以下兩點:
Lambda 表達式主要用來定義行內執行的方法類型接口,例如,一個簡單方法接口。在上面例子中,我們使用各種類型的Lambda表達式來定義MathOperation接口的方法。然後我們定義了sayMessage的執行。
Lambda 表達式免去了使用匿名方法的麻煩,並且給予Java簡單但是強大的函數化的編程能力。
-
怎麼查看微信羣在哪裏,哪裏可以查看微信羣
1、成功登陸微信後,點擊微信通訊錄選項卡,在微信通訊錄裏可以看到羣聊,點擊羣聊。2、打開羣聊後,在羣聊這裏什麼都沒有,點擊羣聊右上角的“+”圖標。3、在發起羣聊界面上,點擊選擇一個羣。4、點擊進入到選擇羣聊界面後,在選擇羣聊就裏可以看到所有的微信羣了。5、點擊...
-
微博只記得暱稱怎麼登錄
1、在新浪微博登錄頁面,點擊忘記密碼。2、進入頁面,點擊忘記登錄名旁邊的“請試試找回登錄名”。3、按照提示填寫新浪微博暱稱,現在密碼,曾用密碼,輸入驗證碼後,點擊“提交”4、當你填寫正確的“當前密碼”通過驗證後,新浪會給你提示微博登錄名。5、這樣就可以重新登...
-
怎麼查蘋果耳機是不是正品
1、檢查外包裝盒正品盒子外有一層膠帶封住,正品膠帶黏度適中,而且乾淨透亮。開啓盒子需稍微用力,盒子和蓋子之間連接緊密,不易脫落。仿品的透明蓋已脫落,開啓十分容易,盒子和蓋子之間連接不緊密,倒置時受重力影響會分開,更要注意仿品外包裝的膠帶與正品的不同。2、查看...
-
買手機殼送的繞耳機線魚骨頭使用方法
1、魚骨頭收納器正是因爲它的長相設計成了一個魚骨頭的形狀才被成爲魚骨收納器。它分爲三部分,它的魚頭和魚尾分別有兩個斜着的卡扣是用來分別固定耳機頭和耳機插口的。2、繞耳機線時首先我們應該先進行單側的半圈安繞線,固定耳機的插口和耳機頭的方向,接着再用相...