日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

一个简单案例,5 分钟看懂 Java Lamdba 表达式

發布時間:2025/3/21 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一个简单案例,5 分钟看懂 Java Lamdba 表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JDK8引入了一個新玩意,叫做lamdba(那么大)的表達式,說得神乎其神,說真的,這玩意吧,并不難,但是要講清楚吧,也不是太容易的事情。

?

從匿名內部類開始說起

老實交代,直接來講lamdba表達式還真是個枯燥的玩意,那從哪下手呢,我想你一定使用過匿名內部類吧,這玩意在javaswing里面用的超級多。

比如監聽一個按鈕的單擊事件:

? ? ? ?JButton jButton =?new?JButton();jButton.addActionListener(new?ActionListener() {public?void?actionPerformed(ActionEvent e)?{System.out.println("按鈕被點擊了");}});

?

這段代碼應該不陌生吧,addActionListener的這方法需要一個ActionListener接口類型的參數,我這里傳參就是通過匿名內部類的方式。

你可能會說,swing是什么古董,java開發早不玩這玩意了,嗯,我不好反駁(畢竟連eclipse都是swing\awt開發的)。

好吧,我再舉另外一個栗子,線程怎么樣,線程如果還不懂,我就要……

創建線程有很多種方式,那么我從里面選一直比較簡單的

比如:

? ? ? ?new?Thread(new?Runnable() {public?void?run()?{System.out.println("這是個線程,我是匿名內部類");}}).start();

?

好吧,你仔細看下上面兩個實例代碼,并且……

并且數一數上面代碼的行數,我姑且算它5行不過分吧。

?

話鋒一轉,來看下Lamdba的定義

定義:Lambda是一個匿名函數,即沒有函數名的函數(簡化了匿名委托的使用,讓你讓代碼更加簡潔)

請不要去百度這句話出自哪,我有點羞于承認這是我自己總結的,嗯,有一點成就感,同時也有點害羞。

你來看下這句話的意思,Lambda是一個匿名函數,即沒有函數名的函數,這句話是不是非常眼熟,這不就是匿名內部類嗎?

嗯,其實括號里面的才是重點【簡化了匿名委托的使用,讓你讓代碼更加簡潔】

匿名委托又是什么鬼?

其實我賣了個關子,匿名委托就是匿名內部類

用直白的話來講,lamdba表達式就是簡化了匿名內部類的編寫,這樣解釋應該好懂吧(不懂你把我殺了吧)

萬一不懂,嗯,萬一還是不懂請留言吧。

Lamdba(那么大)的表達式到底是什么簡化代碼?

謎題好像要解開了,知道了匿名委托是什么,也知道了Lamdba表達式的定義,那么回到剛才寫的那兩個匿名內部類。

第一個

? ? ? ?JButton jButton =?new?JButton();jButton.addActionListener(new?ActionListener() {public?void?actionPerformed(ActionEvent e)?{System.out.println("按鈕被點擊了");}});

?

使用lamdba把上面的簡化下:

? ? ? ?JButton jButton =?new?JButton();jButton.addActionListener(e -> System.out.println("按鈕被點擊了"));

?

再來看第二個,線程的那個內部類

? ? ? ?new?Thread(new?Runnable() {public?void?run()?{System.out.println("這是個線程,我是匿名內部類");}}).start();

?

再使用lamdba簡化一下

new?Thread(()->?System.out.println("這是個線程,我是匿名內部類")).start();

?

好吧,還是那個要求,請你數數,看下使用lamdba表達式到底簡化了多少行代碼。

嗯,我想現在你一定對lamdba有了一定的理解,知道他確實是簡化了代碼的編寫。

仔細看下這lamdba,感覺還是不太好理解,里面既然冒出了個“->”的符號,現在似乎應該來講講lamdba的語法了。。

但,請容我休息一下,具體的lamdba語法留下一次分享。

總結

以上是生活随笔為你收集整理的一个简单案例,5 分钟看懂 Java Lamdba 表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。