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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Java8————Lambda表达式(一)

發(fā)布時(shí)間:2025/3/12 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java8————Lambda表达式(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本博客翻譯自官方教程《Syntax of Lambda Expressions》

Lambda表達(dá)式的語(yǔ)法

一個(gè)Lambda表達(dá)式由以下部分構(gòu)成:

1、圓括號(hào)內(nèi)的一個(gè)由逗號(hào)分隔的參數(shù)列表。

interface CheckPerson {boolean test(Person p); }

CheckPerson.test方法包含一個(gè)參數(shù),p,這個(gè)參數(shù)代表一個(gè)Person類的實(shí)例。

注意:你可以在Lambda表達(dá)式中省略參數(shù)的類型。另外,如果只有一個(gè)參數(shù),也可以省略參數(shù)列表的括號(hào)。例如,下面的Lambda表達(dá)式也是合法的:

p -> p.getGender() == Person.Sex.MALE && p.getAge() >= 18&& p.getAge() <= 25

2、箭頭標(biāo)志,->

3、一個(gè)主體,它或是一個(gè)單獨(dú)的表達(dá)式或是一個(gè)語(yǔ)句塊。

如果你指定了一個(gè)單獨(dú)的表達(dá)式,那么Java運(yùn)行時(shí)會(huì)估測(cè)表達(dá)式并返回它的值。要么,你可以使用return 語(yǔ)句。

p -> {return p.getGender() == Person.Sex.MALE&& p.getAge() >= 18&& p.getAge() <= 25; }

一個(gè)return 語(yǔ)句并不是一個(gè)表達(dá)式,在Lambda表達(dá)式中,你必須將多個(gè)語(yǔ)句用大括號(hào)封閉起來(lái)。但是,你不必把一個(gè)void方法調(diào)用封閉起來(lái)。例如下面的Lambda表達(dá)式也是合法的。

Email -> System.out.println(email)

注意Lambda表達(dá)式看起來(lái)非常像一個(gè)方法聲明,你可以認(rèn)為L(zhǎng)ambda表達(dá)式是一個(gè)匿名方法,即沒(méi)有名字的方法。

public class Calculator {interface IntegerMath {int operation(int a, int b); }public int operateBinary(int a, int b, IntegerMath op) {return op.operation(a, b);}public static void main(String... args) {Calculator myApp = new Calculator();IntegerMath addition = (a, b) -> a + b;IntegerMath subtraction = (a, b) -> a - b;System.out.println("40 + 2 = " +myApp.operateBinary(40, 2, addition));System.out.println("20 - 10 = " +myApp.operateBinary(20, 10, subtraction)); } }

方法operateBinary對(duì)兩個(gè)Integer的操作數(shù)進(jìn)行計(jì)算。操作本身指定為了一個(gè)IntegerMath的實(shí)例。例子中使用了Lambda表達(dá)式定義了兩個(gè)操作:addition 和 substraction。例子輸出如下:

40 + 2 = 42 20 - 10 = 10

?

總結(jié)

以上是生活随笔為你收集整理的Java8————Lambda表达式(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。