jdk1.8 新特性之 如何寫lambda表示式
語法
lambda表示式的特點,它的語法如下面。
parameter -> expression body
下面是一個lambda表示式的重要特徵。
-
可選型別宣告 - 無需宣告引數的型別。編譯器可以從該引數的值推斷。
-
可選圓括號引數 - 無需在括號中宣告引數。對於多個引數,括號是必需的。
-
可選大括號 - 表示式主體沒有必要使用大括號,如果主體中含有一個單獨的語句。
-
可選return關鍵字 - 編譯器會自動返回值,如果主體有一個表示式返回的值。花括號是必需的,以表明表示式返回一個值
lambda表示式的基本語法形式:()->方法體。
而在整個java之中,對於lambda表示式一共定義了有三類語法:
(params) -> 單行語句;
(params) ->表示式;
(params) ->{多行語句};
-
Lambada表示式例子
-
() -> {} // 沒有引數,沒有返回值
() -> 42 // 沒有引數,方法體有表示式
() -> null // 沒有引數,方法體有表示式
() -> { return 42; } // 沒有引數,方法體有返回值
() -> { System.gc(); } // 沒有引數,有方法體// 有多種返回值
() -> {
if (true) return 10;
else {
int result = 15;
for (int i = 1; i < 10; i++)
result *= i;
return result;
}
}(int x) -> x+1 // 單個引數
(int x) -> { return x+1; } // 單個引數,跟上面一樣
(x) -> x+1 // 單個引數,跟下面一樣
x -> x+1(String s) -> s.length()
(Thread t) -> { t.start(); }
s -> s.length()
t -> { t.start(); }(int x, int y) -> x+y // 多個引數,有返回值
(x,y) -> x+y // 跟上面一樣
(x, final y) -> x+y // 多個引數,有不能修改的引數
(x, int y) -> x+y // 這個是非法的,不能混合寫 -
結合以上的呼叫格式
-
在程式中更加有效的去構建自己的程式程式碼
-
相關文章
- JDK1.8新特性之Lambda表示式JDK
- JDK1.8新特性之Lambda表示式()->JDK
- jdk1.8 新特性之 lambda表示式JDK
- JDK1.8的新特性之Lambda表示式JDK
- JDK1.8新特性--Lambda表示式JDK
- jdk1.8新特性:Lambda表示式JDK
- JDK1.8之lambda表示式JDK
- JDK1.8 之Lambda表示式JDK
- JDK 1.8 新特性之Lambda表示式JDK
- JDK1.8最新特性--Lambda表示式(重點)JDK
- java8 新特性之Lambda 表示式Java
- Java8 新特性之 Lambda 表示式Java
- C++11新特性之Lambda表示式C++
- JDK1.8新特性:Lambda表示式語法和內建函式式介面JDK函式
- java8新特性之lambda表示式(一)Java
- [Java學習筆記]JDK1.8新特性學習(一)Lambda表示式Java筆記JDK
- Java 8新特性(一):Lambda表示式Java
- .NET3.5新特性,Lambda表示式
- JDK1.8之Lambda解析與表示式的使用JDK
- Java8新特性(1):Lambda表示式Java
- Java8新特性(一)-Lambda表示式Java
- JDK新特性-Lambda表示式的神操作JDK
- java-反射,介面新特性,Lambda表示式Java反射
- .net framework3.5新特性:Lambda表示式Framework
- jdk1.8 lambda表示式入門JDK
- java8的新特性之lambda表示式和方法引用Java
- JDK1.8及以上的Lambda表示式JDK
- JDK1.8 Lambda 表示式的學習JDK
- Java8新特性第1章(Lambda表示式)Java
- JDK1.8中Lambda表示式的應用JDK
- 深圳Java培訓學習:Java8.0新特性之Lambda表示式Java
- 好程式設計師分享java8新特性之Lambda表示式程式設計師Java
- java8特性-lambda表示式Java
- Java8新特性——從Lambda表示式到Stream流Java
- Java 8新特性:lambda表示式(四)轉載總結Java
- 【原創】.net framework3.5新特性1:Lambda表示式Framework
- Java之lambda表示式Java
- ?Java8新特性之Lambda表示式,函式式介面,方法引用和default關鍵字Java函式