JDK8新特性:Lambda表達式規則及用法,方法引用

目錄

Lambda表達式是JDK8新增的一種語法格式

1.作用

2.用法規則:

3.方法引用


Lambda表達式是JDK8新增的一種語法格式

1.作用

簡化匿名內部類的代碼寫法

Lambad用法前提:只能簡化函數式接口(一般加有@Funcationallnterface)(有且僅有一個抽象方法@)的匿名內部類

匿名內部類:(本質是對象名的子類對象)? ? :?

? ? ? ? ? ? ? ? ? 對象名 a = new 對象名(){ ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?@Override ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?public void 方法名(){ ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 內容? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }; ? ? ? ? ?

2.用法規則:

Lambda表達式的省略寫法(進一步簡化Lambda表達式的寫法)

1.參數類型可以省略不寫

2.如果只有一個參數,參數類型可以省略,同時()也可以省略。

3.如果Lambda表達式中的方法體代碼只有一行代碼,可以省略大括號不寫,同時要省略分號!此時,如果這行代碼是return語句,也必須去掉return不寫

格式:(被重寫方法的形參列表)->{

? ? ? ? ? ? ?被重寫方法的方法體代碼

? ? ? ? ? ? }

最終簡化:?

對象名 a =() ->{
? ? return? 內容
});

最終簡化

一個參數下:(對象名,o1?->內容);

兩個參數下:(對象名,(o1,o2) ->內容);

3.方法引用

作用:進一步簡化Lambda表達式

標志性符號? ::

1.靜態方法(static修飾)的引用:只調用一個靜態方法,并且前后參數的形式一致

類名 :: 靜態方法

2.實例方法的引用:只調用一個實例方法,并且前后參數的形式一致

對象名 ::實例方法

3.特定類型方法的引用:只調用一個實例方法,并且前面參數列表中的第一個參數是作為方法的主調,后面的所有參數都是作為該實例方法的入參的

類型 ::方法

4.構造器引用:如果某個Lambda表達式里只是在創建對象,并且前后參數情況一致

類名 ::new

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/212005.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/212005.shtml
英文地址,請注明出處:http://en.pswp.cn/news/212005.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python dateutil 庫:簡化日期和時間處理的利器

更多資料獲取 📚 個人網站:ipengtao.com 在Python中,處理日期和時間是常見的任務之一。dateutil庫是Python標準庫中datetime模塊的擴展,提供了許多方便的工具和函數,簡化了日期和時間的操作。 安裝與基本用法 首先&…

小黑子之——MybatiPlus整合

MybatiPlus學習 一、MybatiPlus簡介1.1 入門案例1.2 mybatisPlus概述1.3 總結 二、標準數據層開發2.1 標準的CRUD使用2.2 新增2.3 刪除2.4 修改2.5 根據Id查詢2.6 查詢全部2.7 Lombok2.8 分頁功能 三、DQL控制3.1 條件查詢方式3.1.1 構建條件查詢3.1.2 多條件查詢3.1.3 null值判…

運維05:自動化

人工運維時代 運維人員早期需要維護眾多的機器,因此需要執行很多重復的勞動,很多機器需要同時部署相同的服務或者是執行相同的命令,還得反復地登錄不同的機器,執行重復的動作 自動化運維時代 早期運維人員會結合ssh免密登錄&…

Java基礎——對象類型轉換(向上、向下轉型)

非繼承關系的類之間對象類型不可以互相類型轉換,只有繼承關系才可以互相轉換。 簡單說,對象類型轉換的前提要是繼承關系。 對象類型轉換分為:向上轉型和向下轉型。多態就是一種自動向上轉型。 向上轉型:子類對象用父類類型接收…

Leetcode 2963. Count the Number of Good Partitions

Leetcode 2963. Count the Number of Good Partitions 1. 解題思路2. 代碼實現 題目鏈接:2963. Count the Number of Good Partitions 1. 解題思路 這一題根據題意,顯然我們可以將其先分為 n n n個原子partition,確保任意兩個partition之間…

git 常用的使用方法

1.查看分支 $ git branch #查看本地分支 $ git branch -r #查看遠程分支 $ git branch -a #查看所有分支 $ git branch -vv #查看本地分支及追蹤的分支 2.創建分支 方法1 $ git branch 分支名 #創建本地分支 #將本地分支push,就創建了遠程分支方法2 #創建本地分…

載入了名字空間‘htmltools’ 0.5.6,但需要的是>= 0.5.7解決方案

解決方案:刪除之前的舊版本安裝包,安裝新的包 1.卸載之前的安裝包 2.關閉R,重新打開 3. # install.packages("htmltools") library(htmltools)

Java 并發編程(一)

1、在 java 中守護線程和本地線程區別? java 中的線程分為兩種:守護線程(Daemon)和用戶線程(User) 任何線程都可以設置為守護線程和用戶線程,通過方法 Thread.setDaemon(boolon);tru…

HarmonyOS學習--了解基本工程目錄

1.工程級目錄 工程的目錄結構如下: 其中詳細如下: AppScope中存放應用全局所需要的資源文件。entry是應用的主模塊,存放HarmonyOS應用的代碼、資源等。oh_modules是工程的依賴包,存放工程依賴的源文件。build-profile.json5是工…

如何找到MACOS系統更新的安裝包

首先在應用商店中下載新系統的安裝包,然后在設置中不要點安裝,會自動跳出安裝的界面,不要關閉界面,打開命令行用root權限輸入命令cat /var/log/install.log | grep *.dmg, 就會顯示 sh-3.2# cat /var/log/install.log …

算法基礎十

加一 給定一個由 整數 組成的 非空 數組所表示的非負整數,在該數的基礎上加一。最高位數字存放在數組的首位, 數組中每個元素只存儲單個數字。 示例 1: 輸入:digits [1,2,3] 輸出:[1,2,4] 解釋:輸入數組表…

YOLO_embedded: YOLO算法快速嵌入式部署

YOLO_embedded: YOLO算法快速嵌入式部署 for UbuntuBased on YOLOXOpenVINO & TensorRT 本項目提供c和python兩種語言,詳情請見各個文件夾下的README.md 安裝OpenVINO 點此進入官網選擇版本進行下載,然后打開install_openvino.sh將相…

ORACLE 19c 統一恢復處于ASM中的CDB含PDB數據文件到某一個文件目錄下面

NOCDB情況下,要把ASM中的文件恢復到文件系統,大家都知道分別設置每個文件的路徑即可,但如果是租戶環境,每個PDB都有不同路徑,而且每個PDB都有SYSTEM,SYSAUX等一些表空降,不可能放在同一個目錄中…

Linux_CentOS_7.9 VNC安裝卸載以及相關配置開機自啟動服務簡易記錄

VNC安裝卸載以及相關配置開機自啟動服務: 查看環境:(yum鏡像源配置可以參考我之前文章里面有詳細參考http://t.csdnimg.cn/mzGoI) [rootorcl238 ~]# rpm -qa | grep vnc ##查看系統現有VNC軟件版本 gtk-vnc2-0.7.0-3.el7.x86…

道可云元宇宙每日資訊|青島市元宇宙領域新產品推介暨產學研對接會舉行

道可云元宇宙每日簡報(2023年12月7日)訊,今日元宇宙新鮮事有: 青島市元宇宙領域新產品推介暨產學研對接會舉行 為加快推動青島市元宇宙技術和產業創新,引領下一代互聯網發展,青島市元宇宙領域新產品推介暨…

算法基礎九

螺旋矩陣2 給你一個正整數 n ,生成一個包含 1 到 n2 所有元素,且元素按順時針順序螺旋排列的 n x n 正方形矩陣 matrix。 示例 1: 輸入:n 3 輸出:[[1,2,3],[8,9,4],[7,6,5]] 示例 2: 輸入:n …

第12節: Vue3 修飾符

如何在UniApp中使用Vue3框架使用修飾符&#xff1a; <template> <view> <button click"toggleVisibility ^ :disabledisDisabled">點擊切換顯示狀態</button> <text>{{ isVisible ? 顯示 : 隱藏 }}</text> </view> …

簡易加減運算器的制作----數字電路設計(含proteus仿真)

簡易加減運算器的制作 一、功能要求—基本功能 1、自制0-9按鍵&#xff0c;在一個LED數碼管上穩定地顯示當前按下的值。&#xff08;基本功能&#xff09; 2、增加、兩個按鍵&#xff0c;實現0-9兩個一位數的加法運算&#xff0c;同時在兩位LED上穩定地顯示運算結果。&#…

React中每次渲染都會傳入一個新的props.children到子組件?

傳入props.children后, 為什么會導致組件的重新渲染&#xff1f; 問題描述 在 react 中, 我想要對組件的渲染進行優化, 遇到了一個非常意思的問題, 當我向一個組件中傳入了 props.children 之后, 每次父組件重新渲染都會導致這個組件的重新渲染; 它看起來的表現就像是被memo包…

MTU與MSS

MTU&#xff1a;一個網絡包的最大長度&#xff0c;以太網中一般為1500各字節。 MSS&#xff1a;除去頭部之后&#xff0c;一個網絡包所能容納的TCP數據的最大長度。 應用程序調用write后&#xff0c;將要發送的數據被交給TCP/IP協議棧進行。 協議棧不關心應用的數據內容&…