Java匿名類和匿名函數(shù)的概念和寫(xiě)法
前言
Lambda流式操作是Java8中重要的特性,lambda表達(dá)式核心概念為 函數(shù)式接口、::、-> 等基本語(yǔ)法,可以大大減少代碼量的編寫(xiě),使代碼更加優(yōu)雅
- 只有一個(gè)抽象函數(shù)的接口,就是函數(shù)式接口
- :: 可以稱之為域運(yùn)算符,主要是用來(lái)獲取方法
- -> 的語(yǔ)法為 (變量或參數(shù))->{代碼體},是匿名函數(shù)的寫(xiě)法。也叫變量和代碼的分隔符
- 當(dāng)只獲取一個(gè)方法屬性的時(shí)候 :: 和 -> 可以通用
介紹
接口:
- 接口可以定義在另一個(gè)類的內(nèi)部
- 接口中的方法都是抽象方法
- 接口中的常量都是靜態(tài)常量
類:
- 類可以定義在另一個(gè)類的內(nèi)部
- 也可以定義為內(nèi)部靜態(tài)類,使用 static 關(guān)鍵字
- 還可以定義為局部?jī)?nèi)部類,定義在方法中
一、什么是Lambda表達(dá)式?
lambda表達(dá)式是為了簡(jiǎn)寫(xiě)代碼的寫(xiě)法
二、什么是函數(shù)式接口?
只有一個(gè)抽象方法的接口就是函數(shù)式接口
//1.定義一個(gè)函數(shù)式接口。只有一個(gè)抽象方法的接口就是函數(shù)式接口 interface ILike{ void testLambda(); }
三、什么是匿名內(nèi)部類?
- 沒(méi)有類名
- 必須借助接口或父類
- 通過(guò)實(shí)例化函數(shù)式接口就可以完成匿名內(nèi)部類實(shí)現(xiàn)此接口并重寫(xiě)方法
//5.匿名內(nèi)部類,沒(méi)有類名稱,必須借助接口 like = new ILike() { @Override public void testLambda() { System.out.println("i like lambda4"); } }; like.testLambda();
四、用 Lambda 簡(jiǎn)化匿名內(nèi)部類的寫(xiě)法
- 匿名內(nèi)部類是為了省去類名的寫(xiě)法
- Lambda 簡(jiǎn)化寫(xiě)法不但可以省去類名,還可以省去接口名和函數(shù)名。因?yàn)橹挥幸粋€(gè)抽象方法,可以直接實(shí)現(xiàn)并指向這個(gè)抽象方法和方法體
//6.用lambda簡(jiǎn)化,因?yàn)榻涌谥兄挥幸粋€(gè)函數(shù),所以可以直接省略實(shí)例化的接口名和函數(shù)名 like = () -> { System.out.println("i like lambda5"); }; like.testLambda();
結(jié)論
匿名函數(shù)寫(xiě)法和匿名類寫(xiě)法的前提必須基于函數(shù)式接口匿名函數(shù)寫(xiě)法和匿名類寫(xiě)法其本質(zhì)是同一個(gè)東西,只是簡(jiǎn)化寫(xiě)法不同使用Lambda表達(dá)式簡(jiǎn)寫(xiě)匿名函數(shù)時(shí),可以同時(shí)省略實(shí)現(xiàn)類名、函數(shù)名。除此外也可以使用傳統(tǒng)寫(xiě)法
到此這篇關(guān)于Java匿名類和匿名函數(shù)的概念和寫(xiě)法的文章就介紹到這了,更多相關(guān)java匿名類和匿名函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot創(chuàng)建maven多模塊項(xiàng)目實(shí)戰(zhàn)代碼
本篇文章主要介紹了SpringBoot創(chuàng)建maven多模塊項(xiàng)目實(shí)戰(zhàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Mybatis使用update更新值為null時(shí)不生效問(wèn)題解決
這篇文章主要介紹了Mybatis使用update更新值為null時(shí)不生效問(wèn)題解決,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06spring boot創(chuàng)建項(xiàng)目包依賴問(wèn)題的解決
本篇文章主要介紹了spring boot創(chuàng)建項(xiàng)目包依賴問(wèn)題的解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11