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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一区二区三区在线播放 | 亚洲2017久无码 | 果冻传媒和91制片厂网站软件 | 久久性综合亚洲精品电影网 | 99草精品视频 | 精品手机在线1卡二卡3卡四卡 | 日韩v| 91啦丨porny丨蝌蚪 | 亚洲啊v| 日韩视频一区二区 | 操男孩| 99久久精品免费看国产一区二区 | 色综合天天综合网看在线影院 | 好深快点再快点好爽视频 | 好大水好多好爽好硬好深视频 | 国产情侣自拍网 | 日本免费观看的视频在线 | 水野朝阳厨房系列在线观看 | 接吻吃胸摸下面啪啪教程 | 好大好爽好硬我要喷水了 | 欧美日韩国产精品综合 | 日本漫画大全之工之口 | 动漫人物差差差动漫人物免费观看 | 娇小性色 | 我把校花黑色蕾丝胸罩脱了 | 男男羞羞视频网站国产 | 午夜精品久视频在线观看 | 免费在线视频观看 | 日韩 国产 欧美 | 亚洲精品国产精品麻豆99 | 午夜在线观看免费观看 视频 | 无码AV熟妇素人内射V在线 | 午夜精品亚洲 | 亚洲欧美视频在线播放 | 情缘1完整版在线观看 | 我将她侵犯1~6樱花动漫在线看 | 小小水蜜桃视频高清在线播放 | 波多野结衣久久国产精品 | 女张腿男人桶羞羞漫画 | 亚洲 欧美 国产 视频二区 | 色老板在线免费视频 |