日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【应用】Lambda表达式

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【应用】Lambda表达式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 簡介
  • 用法前提和語法
  • 作用
  • 例子
    • 推導lambda表達式(內部類的簡化過程)
    • 帶參數的情況以及lambda表達式的簡化:

簡介

  • Lambda 表達式,也可稱為閉包,它是推動 Java 8 發布的最重要新特性。
  • Lambda 允許把函數作為一個方法的參數(函數作為參數傳遞進方法中)。

用法前提和語法

  • 用法前提:

如果一個接口只存在一個方法且是抽象類方法,那這個接口為函數式接口。對于函數式接口,可以使用lambda表達式來創建該接口的對象。

  • 語法格式如下:

(parameters) -> expression

(parameters) ->{ statements; }

作用

  • 可以使代碼變的更加簡潔緊湊。
  • 避免匿名內部類定義過多

例子

推導lambda表達式(內部類的簡化過程)

// 推導lambda表達式 public class LambdaDemo {// 3.靜態內部類static class Like2 implements ILike {@Overridepublic void lambda() {System.out.println("I like lambda2");}}public static void main(String[] args) {ILike like = new Like();like.lambda();like = new Like2();like.lambda();// 4.局部內部類class Like3 implements ILike {@Overridepublic void lambda() {System.out.println("I like lambda3");}}like = new Like3();like.lambda();// 5.匿名內部類:沒有類的名稱,必須借助接口或者父類like = new ILike() {@Overridepublic void lambda() {System.out.println("I like lambda4");}};like.lambda();// 6.用lambda簡化like = ()->{System.out.println("I like lambda5");};like.lambda();} }// 1.定義一個函數式接口 interface ILike{void lambda(); }// 2.實現類 class Like implements ILike{@Overridepublic void lambda() {System.out.println("I like lambda");} }

帶參數的情況以及lambda表達式的簡化:

public class LambdaDemo2 {public static void main(String[] args) {// 匿名內部類ILove love = new ILove() {@Overridepublic void love(int a,int b) {System.out.println("I love you:" + a);}};// 匿名內部類變成lambda表達式形式love = (int a,int b)->{System.out.println("I love you:" + a);};// 簡化1:去掉參數類型 //(多個參數也能去掉參數類型,要去掉就全去掉)love = (a, b)->{System.out.println("I love you:" + a);};// 簡化2:去掉括號(多個參數的情況不能去掉括號,只有一個參數的情況就可以) // love = a ->{ // System.out.println("I love you:" + a); // };// 簡化3:去掉花括號(只有一行代碼的情況下才能去掉花括號,多行代碼要用代碼塊)love = (a, b) -> System.out.println("I love you:" + a);love.love(520,502);} }interface ILove{void love(int a,int b); }//class Love implements ILove{ // @Override // public void love(int a,int b) { // System.out.println("I love you:"+a); // } //}

總結

以上是生活随笔為你收集整理的【应用】Lambda表达式的全部內容,希望文章能夠幫你解決所遇到的問題。

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