【应用】Lambda表达式
生活随笔
收集整理的這篇文章主要介紹了
【应用】Lambda表达式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 簡(jiǎn)介
- 用法前提和語(yǔ)法
- 作用
- 例子
- 推導(dǎo)lambda表達(dá)式(內(nèi)部類(lèi)的簡(jiǎn)化過(guò)程)
- 帶參數(shù)的情況以及l(fā)ambda表達(dá)式的簡(jiǎn)化:
簡(jiǎn)介
- Lambda 表達(dá)式,也可稱(chēng)為閉包,它是推動(dòng) Java 8 發(fā)布的最重要新特性。
- Lambda 允許把函數(shù)作為一個(gè)方法的參數(shù)(函數(shù)作為參數(shù)傳遞進(jìn)方法中)。
用法前提和語(yǔ)法
- 用法前提:
如果一個(gè)接口只存在一個(gè)方法且是抽象類(lèi)方法,那這個(gè)接口為函數(shù)式接口。對(duì)于函數(shù)式接口,可以使用lambda表達(dá)式來(lái)創(chuàng)建該接口的對(duì)象。
- 語(yǔ)法格式如下:
(parameters) -> expression
或
(parameters) ->{ statements; }
作用
- 可以使代碼變的更加簡(jiǎn)潔緊湊。
- 避免匿名內(nèi)部類(lèi)定義過(guò)多
例子
推導(dǎo)lambda表達(dá)式(內(nèi)部類(lèi)的簡(jiǎn)化過(guò)程)
// 推導(dǎo)lambda表達(dá)式 public class LambdaDemo {// 3.靜態(tài)內(nèi)部類(lèi)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.局部?jī)?nèi)部類(lèi)class Like3 implements ILike {@Overridepublic void lambda() {System.out.println("I like lambda3");}}like = new Like3();like.lambda();// 5.匿名內(nèi)部類(lèi):沒(méi)有類(lèi)的名稱(chēng),必須借助接口或者父類(lèi)like = new ILike() {@Overridepublic void lambda() {System.out.println("I like lambda4");}};like.lambda();// 6.用lambda簡(jiǎn)化like = ()->{System.out.println("I like lambda5");};like.lambda();} }// 1.定義一個(gè)函數(shù)式接口 interface ILike{void lambda(); }// 2.實(shí)現(xiàn)類(lèi) class Like implements ILike{@Overridepublic void lambda() {System.out.println("I like lambda");} }帶參數(shù)的情況以及l(fā)ambda表達(dá)式的簡(jiǎn)化:
public class LambdaDemo2 {public static void main(String[] args) {// 匿名內(nèi)部類(lèi)ILove love = new ILove() {@Overridepublic void love(int a,int b) {System.out.println("I love you:" + a);}};// 匿名內(nèi)部類(lèi)變成lambda表達(dá)式形式love = (int a,int b)->{System.out.println("I love you:" + a);};// 簡(jiǎn)化1:去掉參數(shù)類(lèi)型 //(多個(gè)參數(shù)也能去掉參數(shù)類(lèi)型,要去掉就全去掉)love = (a, b)->{System.out.println("I love you:" + a);};// 簡(jiǎn)化2:去掉括號(hào)(多個(gè)參數(shù)的情況不能去掉括號(hào),只有一個(gè)參數(shù)的情況就可以) // love = a ->{ // System.out.println("I love you:" + a); // };// 簡(jiǎn)化3:去掉花括號(hào)(只有一行代碼的情況下才能去掉花括號(hào),多行代碼要用代碼塊)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); // } //}總結(jié)
以上是生活随笔為你收集整理的【应用】Lambda表达式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Nginx(六)-- 配置文件之Gzip
- 下一篇: Matlab颜色RGB值