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

