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