Java的函數式接口

Java的函數式接口

前面介紹了Lambda表達式,它所用的場所是創建只有一個抽象方法的接口的實例。這裏**只有一個抽象方法的接口就是函數式接口。**

如果一個接口包括兩個及以上抽象方法,那麼不能使用Lambda表達式,必須採用匿名內部類來創建這個接口的實例。

因此只有函數式接口纔可以寫成Lambda表達式的形式:

(1)將Lambda表達式賦值給函數式接口,如下所示:

interface Convert{
	Integer convert(String str);
}
public class test{
	public static void main(String[] args) {
        //直接將Lambda表達式賦值給Convert接口變量
		Convert cov=str->Integer.valueOf(str); 
		Integer i=cov.convert("99");
		System.out.println(i);
	}
}

程序執行過程如下圖:

在這裏插入圖片描述

(2)將Lambda表達式作爲函數式接口類型的參數傳給某個方法

interface InterfaceA{
	void taste();
}
class LamdabTest{
	//普通方法1,其方法參數是接口1的一個對象
	public void eat(InterfaceA ia) {
		ia.taste();
}
public class test{
	public static void main(String[] args) {
		LamdabTest lt=new LamdabTest();
		lt.eat(()->System.out.println("蘋果的味道很好"));
	}
}

(3)使用函數式接口對Lambda表達式進行強制類型轉換

Object obj=(Runnable)()->{
    for(int i=0;i<100;i++){
        System.out.println(i);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章