亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java8 lambda表達(dá)式2種常用方法代碼解析

 更新時(shí)間:2020年08月06日 11:08:28   作者:志不堅(jiān)者智不達(dá)  
這篇文章主要介紹了Java8 lambda表達(dá)式2種常用方法代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

與python不一樣,python lambda是定義匿名函數(shù),而在java8中l(wèi)ambda是匿名內(nèi)部類

例1、用lambda表達(dá)式實(shí)現(xiàn)Runnable

我開始使用Java 8時(shí),首先做的就是使用lambda表達(dá)式替換匿名類,而實(shí)現(xiàn)Runnable接口是匿名類的最好示例??匆幌翵ava 8之前的runnable實(shí)現(xiàn)方法,需要4行代碼,而使用lambda表達(dá)式只需要一行代碼。我們?cè)谶@里做了什么呢?那就是用() -> {}代碼塊替代了整個(gè)匿名類。

// Java 8之前:
new Thread(new Runnable() {
  @Override
  public void run() {
  System.out.println("Before Java8, too much code for too little to do");
  }
}).start();

//Java 8方式:
new Thread( () -> System.out.println("In Java8, Lambda expression rocks !!") ).start();

輸出:

too much code, for too little to do
Lambda expression rocks !!

這個(gè)例子向我們展示了Java 8 lambda表達(dá)式的語(yǔ)法。你可以使用lambda寫出如下代碼:

(params) -> expression
(params) -> statement
(params) -> { statements }

例如,如果你的方法不對(duì)參數(shù)進(jìn)行修改、重寫,只是在控制臺(tái)打印點(diǎn)東西的話,那么可以這樣寫:

() -> System.out.println("Hello Lambda Expressions");

如果你的方法接收兩個(gè)參數(shù),那么可以寫成如下這樣:

(int even, int odd) -> even + odd

順便提一句,通常都會(huì)把lambda表達(dá)式內(nèi)部變量的名字起得短一些。這樣能使代碼更簡(jiǎn)短,放在同一行。所以,在上述代碼中,變量名選用a、b或者x、y會(huì)比even、odd要好。

例2、使用Java 8 lambda表達(dá)式進(jìn)行事件處理

如果你用過Swing API編程,你就會(huì)記得怎樣寫事件監(jiān)聽代碼。這又是一個(gè)舊版本簡(jiǎn)單匿名類的經(jīng)典用例,但現(xiàn)在可以不這樣了。你可以用lambda表達(dá)式寫出更好的事件監(jiān)聽代碼,如下所示:

// Java 8之前:
JButton show = new JButton("Show");
show.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent e) {
  System.out.println("Event handling without lambda expression is boring");
  }
});

// Java 8方式:
show.addActionListener((e) -> {
  System.out.println("Light, Camera, Action !! Lambda expressions Rocks");
});

Java開發(fā)者經(jīng)常使用匿名類的另一個(gè)地方是為 Collections.sort() 定制 Comparator。在Java 8中,你可以用更可讀的lambda表達(dá)式換掉丑陋的匿名類。我把這個(gè)留做練習(xí),應(yīng)該不難,可以按照我在使用lambda表達(dá)式實(shí)現(xiàn) Runnable 和 ActionListener 的過程中的套路來(lái)做。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用

    使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用

    這篇文章主要介紹了使用Java開發(fā)實(shí)現(xiàn)OAuth安全認(rèn)證的應(yīng)用的方法,OAuth安全認(rèn)證經(jīng)常出現(xiàn)于社交網(wǎng)絡(luò)API應(yīng)用的相關(guān)開發(fā)中,需要的朋友可以參考下
    2015-11-11
  • Java Swing GroupLayout分組布局的實(shí)現(xiàn)代碼

    Java Swing GroupLayout分組布局的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java Swing GroupLayout分組布局的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 使用Apache Ignite實(shí)現(xiàn)Java數(shù)據(jù)網(wǎng)格

    使用Apache Ignite實(shí)現(xiàn)Java數(shù)據(jù)網(wǎng)格

    今天我們來(lái)探討如何使用Apache Ignite來(lái)實(shí)現(xiàn)Java數(shù)據(jù)網(wǎng)格,Apache Ignite是一個(gè)高性能的內(nèi)存計(jì)算平臺(tái),它提供了分布式緩存、數(shù)據(jù)網(wǎng)格和計(jì)算功能,可以顯著提高大規(guī)模應(yīng)用的數(shù)據(jù)處理性能,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-08-08
  • Java編程中線程池的基本概念和使用

    Java編程中線程池的基本概念和使用

    這篇文章主要介紹了Java編程中線程池的基本概念和使用,多線程編程是使Java程序?qū)崿F(xiàn)并發(fā)的一個(gè)重要手段,需要的朋友可以參考下
    2015-11-11
  • Spring3.1.1+MyBatis3.1.1的增、刪、查、改以及分頁(yè)和事務(wù)管理

    Spring3.1.1+MyBatis3.1.1的增、刪、查、改以及分頁(yè)和事務(wù)管理

    這篇文章主要介紹了Spring3.1.1+MyBatis3.1.1的增、刪、查、改以及分頁(yè)和事務(wù)管理的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • java多線程詳細(xì)總結(jié)

    java多線程詳細(xì)總結(jié)

    以下小編就對(duì)java中的多線程進(jìn)行了詳細(xì)的總結(jié)分析,需要的朋友可以過來(lái)參考下,希望對(duì)大家有所幫助
    2013-10-10
  • Java壓縮文件工具類ZipUtil使用方法代碼示例

    Java壓縮文件工具類ZipUtil使用方法代碼示例

    這篇文章主要介紹了Java壓縮文件工具類ZipUtil使用方法代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • Java消息隊(duì)列中的Kafka如何保證冪等性

    Java消息隊(duì)列中的Kafka如何保證冪等性

    這篇文章主要介紹了Java消息隊(duì)列中的Kafka如何保證冪等性,Kafka是一種消息隊(duì)列,主要用來(lái)處理大量數(shù)據(jù)狀態(tài)下的消息隊(duì)列,一般用來(lái)做日志的處理,既然是消息隊(duì)列,那么Kafka也就擁有消息隊(duì)列的相應(yīng)的特性了,需要的朋友可以參考下
    2023-07-07
  • spring boot實(shí)戰(zhàn)之使用JSP的示例

    spring boot實(shí)戰(zhàn)之使用JSP的示例

    本篇文章主要介紹了spring boot實(shí)戰(zhàn)之使用JSP的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-10-10
  • 使用Logback日志保存到相對(duì)路徑的操作

    使用Logback日志保存到相對(duì)路徑的操作

    這篇文章主要介紹了使用Logback日志保存到相對(duì)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-11-11

最新評(píng)論