摘要:例如上例還可以使用的省略寫法省略規則在標準格式的基礎上,使用省略寫法的規則為小括號內參數的類型可以省略如果小括號內有且僅有一個參,則小括號可以省略如果大括號內有且僅有一個語句,則無論是否有返回值,都可以省略大括號關鍵字及語句分號。
package com.itheima.demo07.Lambda;
import java.util.ArrayList;
/*
Lambda表達式:是可推導,可以省略 凡是根據上下文推導出來的內容,都可以省略書寫 可以省略的內容: 1.(參數列表):括號中參數列表的數據類型,可以省略不寫 2.(參數列表):括號中的參數如果只有一個,那么類型和()都可以省略 3.{一些代碼}:如果{}中的代碼只有一行,無論是否有返回值,都可以省略({},return,分號) 注意:要省略{},return,分號必須一起省略
*/
public class Demo01ArrayList {
public static void main(String[] args) { //JDK1.7版本之前,創建集合對象必須把前后的泛型都寫上 ArrayListlist01 = new ArrayList (); //JDK1.7版本之后,=號后邊的泛型可以省略,后邊的泛型可以根據前邊的泛型推導出來 ArrayList list02 = new ArrayList<>(); }
}
3.10 Lambda省略格式 可推導即可省略Lambda強調的是“做什么”而不是“怎么做”,所以凡是可以根據上下文推導得知的信息,都可以省略。例如上例還可以使用Lambda的省略寫法:
public static void main(String[] args) { invokeCalc(120, 130, (a, b) -> a + b); }省略規則
在Lambda標準格式的基礎上,使用省略寫法的規則為:
小括號內參數的類型可以省略;
如果小括號內有且僅有一個參,則小括號可以省略;
如果大括號內有且僅有一個語句,則無論是否有返回值,都可以省略大括號、return關鍵字及語句分號。
備注:掌握這些省略規則后,請對應地回顧本章開頭的多線程案例。3.11 練習:使用Lambda省略格式 題目
仍然使用前文含有唯一makeFood抽象方法的廚子Cook接口,在下面的代碼中,請使用Lambda的省略格式調用invokeCook方法,打印輸出“吃飯啦!”字樣:
public class Demo09InvokeCook { public static void main(String[] args) { // TODO 請在此使用Lambda【省略格式】調用invokeCook方法 } private static void invokeCook(Cook cook) { cook.makeFood(); } }解答
public static void main(String[] args) { invokeCook(() -> System.out.println("吃飯啦!")); }3.12 Lambda的使用前提
Lambda的語法非常簡潔,完全沒有面向對象復雜的束縛。但是使用時有幾個問題需要特別注意:
使用Lambda必須具有接口,且要求接口中有且僅有一個抽象方法。
無論是JDK內置的Runnable、Comparator接口還是自定義的接口,只有當接口中的抽象方法存在且唯一時,才可以使用Lambda。
使用Lambda必須具有上下文推斷。
也就是方法的參數或局部變量類型必須為Lambda對應的接口類型,才能使用Lambda作為該接口的實例。
備注:有且僅有一個抽象方法的接口,稱為“函數式接口”。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75991.html
本文關鍵給大家介紹了python高階函數使用方法實例詳細說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發展,盡早漲薪 一、高階函數 函數定義 python中,函數名是自變量,下邊這一method函數名當做自變量,偏向1個計算出來的函數公式!因而函數名本身就是偏向函數的自變量,故自變量可偏向函數公式; 自變量可偏向函數公式,且函數的自變量可以接受自變量,那樣任...
Python的作用還是比較的廣泛的,在日常生活中,應用范圍也比較的廣泛,比如,我們可以去利用python,以此來獲取年月日等相關的一些信息,具體的內容是什么呢?下面就給大家詳細的解答下。 這次介紹日期數據處理。 用python中的方法對日期數據進行處理,我們可以獲取很多有用的信息,比如年月日,星期,周次,季度等,這里分享工作和數據競賽30余種常用的轉換方法。 1計算日期的年月日時分秒,星...
摘要:使用表達式,使得應用變得簡潔而緊湊。很多語言等從設計之初就支持表達式。表達式的參數與函數式接口內方法的參數,返回值類型相互對應。更多教程和資料請上騰訊課堂樂字節 showImg(https://segmentfault.com/img/bVbtotg?w=935&h=345); Java8 引入Lambda表達式,允許開發者將函數當成參數傳遞給某個方法,或者把代碼本身當作數據進行處理。...
本文關鍵闡述了Python完成1個全連接層的神經元網絡,文章內容緊扣主題進行詳盡的基本介紹,具有很強的實用價值,必須的朋友可以學習一下 序言 在本文中,提前準備用Python重新開始完成1個全連接層的神經元網絡。你可能會說,為何需要自己去完成,有許多庫和架構能夠給我們做這些事,例如Tensorflow、Pytorch等。這兒只想說僅有自己親自完成了,就是自己的。 想起今日他從接觸到了從事...
摘要:表達式說白了就是一種匿名方法,不需要方法名,修飾符,和返回值類型。就目前而言表達式只能簡化接口的匿名內部類實現。 Lambda表達式說白了就是一種匿名方法,不需要方法名,修飾符,和返回值類型。 使用方法 首先在moudle的build.gradle文件中添加配置:app/build.gradle添加。 android { ... defaultConfi...
閱讀 4693·2021-11-18 13:23
閱讀 896·2021-09-22 15:24
閱讀 1920·2021-09-06 15:00
閱讀 2619·2021-09-03 10:30
閱讀 1278·2021-09-02 15:15
閱讀 2056·2019-08-30 15:54
閱讀 3030·2019-08-30 15:44
閱讀 1449·2019-08-29 15:12