前言
Java Labmda表達(dá)式的一個(gè)重要用法是簡(jiǎn)化某些匿名內(nèi)部類(lèi)(Anonymous Classes)的寫(xiě)法。實(shí)際上Lambda表達(dá)式并不僅僅是匿名內(nèi)部類(lèi)的語(yǔ)法糖,JVM內(nèi)部是通過(guò)invokedynamic指令來(lái)實(shí)現(xiàn)Lambda表達(dá)式的。具體原理放到下一篇。本篇我們首先感受一下使用Lambda表達(dá)式帶來(lái)的便利之處。
取代某些匿名內(nèi)部類(lèi)
本節(jié)將介紹如何使用Lambda表達(dá)式簡(jiǎn)化匿名內(nèi)部類(lèi)的書(shū)寫(xiě),但Lambda表達(dá)式并不能取代所有的匿名內(nèi)部類(lèi),只能用來(lái)取代函數(shù)接口(Functional Interface)的簡(jiǎn)寫(xiě)。先別在乎細(xì)節(jié),看幾個(gè)例子再說(shuō)。
例子1:無(wú)參函數(shù)的簡(jiǎn)寫(xiě)
如果需要新建一個(gè)線程,一種常見(jiàn)的寫(xiě)法是這樣:
// JDK7 匿名內(nèi)部類(lèi)寫(xiě)法 new Thread(new Runnable(){// 接口名 @Override public void
網(wǎng)友評(píng)論