1. 程式人生 > >jdk1.8新特性 函式式介面

jdk1.8新特性 函式式介面

函式式介面

    1、只包含一個抽象方法的介面,稱為函式式介面

    2、你可以通過Lambda 表示式來建立該介面的物件。(若Lambda 表示式丟擲一個受檢異常,那麼該異常需要在目標介面的抽象方法上進行宣告)。

    3、我們可以在任意函式式介面上使用@FunctionalInterface註解,這樣做可以檢查它是否是一個函式式介面,同時javadoc也會包含一條宣告,說明這個介面是一個函式式介面。

自定義函式式介面

@FunctionalInterface
public interface Myinterface {
	public String getResul();
}
// 函式式介面中使用泛型
@FunctionalInterface
public interface Myinterface<T> {
	public T getResul(T t);
}

作為引數傳遞 Lambda 表示式

public String toUpperString(Myinterface<String> mf, String str) {
	return mf.getResul(str);
}
	
public void test() {
	//作為引數傳遞 Lambda 表示式
	String nStr = toUpperString(
			(str) -> str.toLowerCase(),
			"asdfgh");
	// 作為引數傳遞 Lambda 表示式:為了將 Lambda 表示式作為引數傳遞,
	//	接收Lambda 表示式的引數型別必須與該Lambda 表示式相容的函式式介面的類in個
}

Java 內建四大核心函式式介面


其他介面