JDK 8 新特性 之 Lambda表达式
生活随笔
收集整理的這篇文章主要介紹了
JDK 8 新特性 之 Lambda表达式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- Lambda 表達式,也可稱為閉包,它是推動 Java 8 發布的最重要新特性。
- Lambda 允許把函數作為參數傳遞進方法中。
- 使用 Lambda 表達式可以使代碼變的更加簡潔緊湊。
- lambda表達式的重要特征:
- 可選類型聲明:不需要聲明參數類型,編譯器可以統一識別參數值。
- 可選的參數圓括號:一個參數無需定義圓括號,但多個參數需要定義圓括號。
- 可選的大括號:如果主體包含了一個語句,就不需要使用大括號。
- 可選的返回關鍵字:如果主體只有一個表達式返回值則編譯器會自動返回值,大括號需要指定明表達式返回了一個數值。
JDK8 之前調用接口的方式是通過匿名內部類,調用接口中的方法。
@FunctionalInterface public interface FunctionInterface {void get(); }public class FunctionTest {public static void main(String[] args) {FunctionInterface functionInterface = new FunctionInterface() {@Overridepublic void get() {System.out.println("get方法");}};functionInterface.get();} }使用Lambda表達式調用接口中的方法
@FunctionalInterface public interface FunctionInterface {void get(); }public class FunctionTest {public static void main(String[] args) {FunctionInterface ft = () -> {System.out.println("JDK8 Lambda表達式調用:get方法");};ft.get();} }() : 表示抽象方法所需的參數列表,(參數1,參數2)
-> : 固定格式
{} :表示抽象方法的方法體
有返回值的Lambda表達式調用方法
@FunctionalInterface public interface FunctionInterface2 {String get(); } public class FunctionTest {public static void main(String[] args) {FunctionInterface2 functionInterface2 = () -> {return "有返回值的Lambda表達式調用方法";};System.out.println(functionInterface2.get());/*** 優化:有返回值的Lambda表達式調用方法*/FunctionInterface2 functionInterface3 = () -> "優化:有返回值的Lambda表達式調用方法";System.out.println(functionInterface3.get());} }有參數,有返回值的Lambda表達式調用方法
@FunctionalInterface public interface FunctionInterface3 {String get(String s); } public class FunctionTest {public static void main(String[] args) {FunctionInterface3 ft3 = (String s)-> s;System.out.println(ft3.get("有參數,有返回值的Lambda表達式調用方法"));} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的JDK 8 新特性 之 Lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java面试题31:结构型模式中最体现扩
- 下一篇: 飘云阁(PYG)番茄插件流氓弹窗清除方法