您好,登錄后才能下訂單哦!
java中Lamda表達(dá)式是什么,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。
1、λ 希臘字母表中排序第十一位的字母,英語(yǔ)名稱為 Lamda
2、避免匿名內(nèi)部類定義過(guò)多
3、可以讓你的代碼看起來(lái)很簡(jiǎn)潔
4、去掉了一堆沒(méi)有意義的代碼,留下核心的邏輯
5、其實(shí)質(zhì)屬于函數(shù)式編程的概念
(params)-> expression[表達(dá)式]
(params) -> statement[語(yǔ)句]
(params) -> {statements}
a -> System.out.println("i like lamda-->"+a)
new Thread (()->System.out.println(“多線程學(xué)習(xí)。。。?!?
).start();
1、理解Functional interface(函數(shù)式接口)是學(xué)習(xí)java8 lamda表達(dá)式的關(guān)鍵所在。
2、函數(shù)式接口的定義:
任何接口,如果只包含唯一一個(gè)抽象方法,那么它就是一個(gè)函數(shù)式接口。
public interface Runnable{ public abstract void run(); }
對(duì)于函數(shù)式接口,我們可以通過(guò)lamda表達(dá)式來(lái)創(chuàng)建該接口的對(duì)象
package com.haiyang.lamda; public class TestLamda01 { //3、靜態(tài)內(nèi)部類,同樣實(shí)現(xiàn)ILike接口 static class Like2 implements ILike{ @Override public void lamda() { System.out.println("i like lamda2"); } } public static void main(String[] args) { ILike like = new Like(); like.lamda(); like = new Like2(); like.lamda(); //4、局部?jī)?nèi)部類 class Like3 implements ILike{ @Override public void lamda() { System.out.println("i like lamda3"); } } like = new Like3(); like.lamda(); //5、匿名內(nèi)部類,沒(méi)有類的名稱。必須借助接口或者父類 like = new ILike() { @Override public void lamda() { System.out.println("i like lamda4"); } }; like.lamda(); //6、lamda表達(dá)式 like = ()->{ System.out.println("i like lamda5"); }; like.lamda(); } } //1、定義一個(gè)只有一個(gè)抽象方法的接口 interface ILike{ abstract void lamda(); } //2、實(shí)現(xiàn)類 class Like implements ILike{ @Override public void lamda() { System.out.println("i like lamda1"); } }
輸出:
package com.haiyang.lamda; public class TestLamda02 { public static void main(String[] args) { ILive live = null; //Lamda簡(jiǎn)化 live = (int a)->{ System.out.println("I live you"+a); }; live.live(1); //Lamda簡(jiǎn)化參數(shù)類型 live = (a)->{ System.out.println("I live you"+a); }; live.live(2); //Lamda簡(jiǎn)化括號(hào) live = a->{ System.out.println("I live you"+a); }; live.live(3); //Lamda簡(jiǎn)化花括號(hào)(只有一條語(yǔ)句時(shí)) live = a->System.out.println("I live you"+a); live.live(4); } } interface ILive{ abstract void live(int a); }
輸出:
package com.haiyang.lamda; public class TestLamda02 { public static void main(String[] args) { ILive live = null; //Lamda簡(jiǎn)化 live = (int a,int b)->{ System.out.println("I live you"+a+b); }; live.live(1,1); //Lamda簡(jiǎn)化參數(shù)類型(要去掉就要都去掉) live = (a,b)->{ System.out.println("I live you"+a+b); }; live.live(2,2); //Lamda簡(jiǎn)化花括號(hào)(只有一個(gè)語(yǔ)句時(shí)) live = (a,b)->System.out.println("I live you"+a+b); live.live(3,3); } } interface ILive{ abstract void live(int a,int b); }
輸出:
看完上述內(nèi)容,你們掌握java中Lamda表達(dá)式是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。