四萬字 Lambda 表達式完整教程(強烈建議收藏)

Java Lambda表達式的一個重要用法是簡化某些匿名內部類Anonymous Classes)的寫法。實際上Lambda表達式並不僅僅是匿名內部類的語法糖,JVM內部是通過invokedynamic指令來實現Lambda表達式的。具體原理放到下一篇。本篇我們首先感受一下使用Lambda表達式帶來的便利之處。

Lambda and Anonymous Classes(I)

本節將介紹如何使用Lambda表達式簡化匿名內部類的書寫,但Lambda表達式並不能取代所有的匿名內部類,隻能用來取代函數接口(Functional Interface)的簡寫。先別在乎細節,看幾個例子再說。

例子1:無參函數的簡寫

如果需要新建一個線程,一種常見的寫法是這樣:

// JDK7 匿名內部類寫法
new Thread(new Runnable(){// 接口名
@Override
public void run(){// 方法名
System.out.println("Thread run()");
}
}).start();

赞(0)