一、介紹
java8中一個非常重要的特性就是lambda表達式,我們可以把它看成是一種閉包,它允許把函數當做參數來使用,是面向函數式編程的思想,一定程度上可以使代碼看起來更加簡潔。例如以前我們使用匿名內部類來實現代碼:
使用lambda則更加簡潔:
(paramters)-> expression;
或者
(paramters)-> {statements;}
lambad表達式被 箭頭操作符->分為兩大部分;
左側部分:給出lambda內容體需要用到的所有參數;
右側部分:lambda內容體,即lambda表達式要執行的功能;
可選類型聲明:不需要聲明參數類型,編譯器可以統一識別參數值。
可選的參數圓括號:一個參數無需定義圓括號,但多個參數需要定義圓括號。
可選的大括號:如果主體包含了一個語句,就不需要使用大括號。
可選的返回關鍵字:如果主體只有一個表達式返回值則編譯器會自動返回值,大括號需要指定明表達式返回了一個數值。
示例:
方法引用實際上是Lambda表達式的一種語法糖。我可以將方法引用看作是一個函數指針。
方法引用有很多種,它們的語法如下:
靜態方法引用:ClassName::methodName
實例上的實例方法引用:instanceReference::methodName
超類上的實例方法引用:super::methodName
類型上的實例方法引用:ClassName::methodName
構造方法引用:Class::new
數組構造方法引用:TypeName[]::new
示例:
lamdba寫法:
@Test
voidtest1(){
Consumer
}
方法引用寫法:
@Test
voidtest2(){
PrintStreamout = System.out;
Consumer
}
lambda表達式的局部變量可以不用聲明為final,但是必須不可被后面的代碼修改(即隱性的具有final的語義)
在Lambda表達式當中不允許聲明一個與局部變量同名的參數或者局部變量。
Java允許我們使用Lambda表達式替代傳統的匿名類創建使用方式,當該參數接口是含有單個函數的函數式接口,我們就可以使用Lambda表達式去替代匿名類的使用方式。這就是Lambda的強大之處。極大縮短代碼行數,同時大大提高代碼的易讀性,以上是筆者對java8新特性-Lambda表達式個人理解,歡迎大家一起共同探討。
努力做一個可愛的人
微信 | justdoit2019syy
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/130036.html
摘要:現在爸爸終于讓平臺支持了,這篇文章中便來和大家聊聊如何在項目中配置使用。要想在項目中使用的新特性,需要將你的升級到及以上版本,并采用新的編譯。 轉載請注明出處:https://zhuanlan.zhihu.com/p/23279894 前言 在過去的文章中我介紹過Java8的一些新特性,包括: Java8新特性第1章(Lambda表達式) Java8新特性第2章(接口默認方法) J...
摘要:一表達式匿名內部類最大的問題在于其冗余的語法,比如前面的中五行代碼僅有一行是在執行任務。總結基于詞法作用域的理念,表達式不可以掩蓋任何其所在上下文的局部變量。 轉載請注明出處:https://zhuanlan.zhihu.com/p/20540175 在介紹Lambda表達式之前,我們先來看只有單個方法的Interface(通常我們稱之為回調接口): public interface...
摘要:上一篇小樂介紹了新特性函數式接口,大家可以點擊回顧。中引入方法引用新特性用于簡化應用對象方法的調用,方法引用是用來直接訪問類或者實例的已經存在的方法或者構造方法。方法引用是一種更簡潔易懂的表達式。 上一篇小樂介紹了《Java8新特性-函數式接口》,大家可以點擊回顧。這篇文章將接著介紹Java8新特性之方法引用。 Java8 中引入方法引用新特性,用于簡化應用對象方法的調用,?方法引用是...
摘要:而在中,表達式是對象,它們必須依附于一類特別的對象類型函數式接口。即表達式返回的是函數式接口類型。 Java8被稱作Java史上變化最大的一個版本。其中包含很多重要的新特性,最核心的就是增加了Lambda表達式和Stream API。這兩者也可以結合在一起使用。首先來看下什么是Lambda表達式。Lambda表達式,維基百科上的解釋是一種用于表示匿名函數和閉包的運算符,感覺看到這個解釋...
摘要:語法中接口可以包含實現方法,需要使用修飾,此類方法稱為默認方法。核心特性接口默認方法就介紹到這里了,后續小樂會繼續講述核心特性。 JAVA8已經發布很久,是自java5(2004年發布)之后Oracle發布的最重要的一個版本。其中包括語言、編譯器、庫、工具和JVM等諸多方面的新特性,對于國內外互聯網公司來說,Java8是以后技術開發的趨勢。這里主要講解在開發中幾個核心的新特性。(主要從...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20