Lambda
文章目錄
- 一. 簡(jiǎn)介
- 二. 使用效果
- 2.1 未使用 lambda 和 使用 lambda 的區(qū)別
- 三. 基本語(yǔ)法
- 四. 函數(shù)式接口
一. 簡(jiǎn)介
Lambda 是一個(gè)匿名函數(shù),我們可以把 Lambda 表達(dá)式理解為是一段可以傳遞的代碼(將代碼 像數(shù)據(jù)一樣進(jìn)行傳遞)。可以寫出更簡(jiǎn)潔、更 靈活的代碼。作為一種更緊湊的代碼風(fēng)格,使 Java的語(yǔ)言表達(dá)能力得到了提升.
二. 使用效果
2.1 未使用 lambda 和 使用 lambda 的區(qū)別
/*** 未使用 lambda 表達(dá)式*/@Testpublic void test01() {Comparator<Integer> comparator1 = new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return Integer.compare(o1,o2);}};TreeSet set = new TreeSet(comparator1);}/*** 使用 lambda 表達(dá)式*/@Testpublic void test02() {// 使用 lambdaComparator<Integer> comparator = (o1,o2) -> Integer.compare(o1,o2);TreeSet set = new TreeSet(comparator);}三. 基本語(yǔ)法
Lambda 表達(dá)式在Java 語(yǔ)言中引入了一個(gè)新的語(yǔ)法元 素和操作符。這個(gè)操作符為 “->” , 該操作符被稱 為 Lambda 操作符或剪頭操作符。它將 Lambda 分為 兩個(gè)部分:
左側(cè):指定了 Lambda 表達(dá)式需要的所有參數(shù)
右側(cè):指定了 Lambda 體,即 Lambda 表達(dá)式要執(zhí)行 的功能。
四. 函數(shù)式接口
只包含一個(gè)抽象方法的接口,稱為函數(shù)式接口。
你可以通過(guò) Lambda 表達(dá)式來(lái)創(chuàng)建該接口的對(duì)象。(若 Lambda
表達(dá)式拋出一個(gè)受檢異常,那么該異常需要在目標(biāo)接口的抽象方
法上進(jìn)行聲明)。
我們可以在任意函數(shù)式接口上使用 @FunctionalInterface 注解,
這樣做可以檢查它是否是一個(gè)函數(shù)式接口,同時(shí) javadoc 也會(huì)包含一條聲明,說(shuō)明這個(gè)接口是一個(gè)函數(shù)式接口。
Lambda 表達(dá)式需要"函數(shù)式接口"的支持
一個(gè)抽象方法不會(huì)報(bào)錯(cuò).
兩個(gè)抽象方法編譯報(bào)錯(cuò).
總結(jié)
- 上一篇: 免费获取所有股票5分钟级别及以上的交易数
- 下一篇: (转)手机屏幕VGA QVGA HVGA