Java-函數式接口Lambda,註解的使用

有且只有一個抽象方法的接口。函數式接口適用於函數式編程,在java函數式編程的體現就是

Lambda:()->{}

特點:

延遲加載(解釋:滿足條件執行,不滿足條件不執行,避免性能浪費)

 

定義格式:

修飾符 interface 接口名稱{

Public abstract 返回值類型 方法名稱(可選參數信息);

}

@FunctionalInterface註解的作用:

用來檢測函數式接口是否正確,因爲函數式接口只能有一個抽象方法,爲了避免就用檢測註解,成功後進行編譯!

Lambda優化案例-代碼詳解(於普通拼接字符對比)

packagecn.itcast.Lambda;
publicclassDemo01Logger{
/*消耗內存的傳遞內容,if語句相同
publicstaticvoidshowLog(intlevel,Stringmessage){傳遞int類型的等級,日誌信息
if(level==1){
	System.out.println(mb.builderMessage());
	}
*/
//使用函數式編程必須存在函數式接口
publicstaticvoidshowLog(intlevel,MessageBuildermb){//傳遞int類型的等級,接口
if(level==1){
	System.out.println(mb.builderMessage());
	}
}
publicstaticvoidmain(String[]args){
	Stringmsg1="Hellow";
	Stringmsg2="World";
	Stringmsg3="Java";
	/*消耗內存的輸出,不管等級是否爲一,下面的字符串都會進行拼接
	showLog(level:1,message:msg1+msg2+msg3);
	*/
	//如何等級不等於1,下面這段代碼就不是執行;Lambda表達式用()->{}表示
	showLog(1,()->{
	returnmsg1+msg2+msg3;
	});
}
}

註解類代碼:

packagecn.itcast.Lambda;
    @FunctionalInterface
    publicinterfaceMessageBuilder{
    publicabstractStringbuilderMessage();
}

函數式接口作爲方法的參數

函數式接口作爲方法的返回值類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章