一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java8 lambda表達式2種常用方法代碼解析

Java8 lambda表達式2種常用方法代碼解析

2020-08-06 14:41志不堅者智不達 Java教程

這篇文章主要介紹了Java8 lambda表達式2種常用方法代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

與python不一樣,python lambda是定義匿名函數,而在java8中lambda是匿名內部類

例1、用lambda表達式實現Runnable

我開始使用Java 8時,首先做的就是使用lambda表達式替換匿名類,而實現Runnable接口是匿名類的最好示例。看一下Java 8之前的runnable實現方法,需要4行代碼,而使用lambda表達式只需要一行代碼。我們在這里做了什么呢?那就是用() -> {}代碼塊替代了整個匿名類。

?
1
2
3
4
5
6
7
8
9
10
// 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 !!

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

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

例如,如果你的方法不對參數進行修改、重寫,只是在控制臺打印點東西的話,那么可以這樣寫:

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

如果你的方法接收兩個參數,那么可以寫成如下這樣:

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

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

例2、使用Java 8 lambda表達式進行事件處理

如果你用過Swing API編程,你就會記得怎樣寫事件監聽代碼。這又是一個舊版本簡單匿名類的經典用例,但現在可以不這樣了。你可以用lambda表達式寫出更好的事件監聽代碼,如下所示:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
// 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開發者經常使用匿名類的另一個地方是為 Collections.sort() 定制 Comparator。在Java 8中,你可以用更可讀的lambda表達式換掉丑陋的匿名類。我把這個留做練習,應該不難,可以按照我在使用lambda表達式實現 Runnable 和 ActionListener 的過程中的套路來做。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://www.cnblogs.com/linwenbin/p/12172396.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品美女福利视频免费专区 | 天天舔天天射 | 精选国产AV精选一区二区三区 | 古代翁熄乩伦小说h | 国产在线观看一区 | 香蕉91| 女教师雪白老汉 | 国产成人精品三级在线 | 日本高清在线看 | 私人影院在线免费观看 | 亚洲香蕉综合在人在线视看 | 成人精品视频一区二区在线 | 52av我爱avhaose01好 | 精品国产乱码久久久久久免费流畅 | 99久久国语露脸精品国产 | 性做久久久久久久久老女人 | 国产亚洲精品福利在线 | 东北老妇露脸xxxxx | 亚洲欧美优优色在线影院 | 97超pen个人视频公开视频视 | 99久久精品国内 | 欧美一级欧美三级在线 | 操bb视频 | 人与动人物人a级特片 | 午夜国产精品视频在线 | 操动漫美女视频 | 国内免费高清视频在线观看 | 二次元美女挤奶漫画 | 国内剧情麻豆 | www.天天操| 美女的隐私无遮挡的网页 | 色哟呦| 国产精品日韩欧美一区二区 | 国产性色视频 | 天天性综合| 天堂中文在线观看 | 国产麻豆成91 | 女同videos双性人 | 久久国产香蕉 | 精品国产乱码久久久久久免费 | 桃色综合网 |