Java 方法引用
方法引用
方法引用:把已經(jīng)有的方法拿過(guò)來(lái)用,當(dāng)作函數(shù)式接口中的抽象方法的方法體
被引用的方法必須已經(jīng)存在
被引用的方法的形參和返回值需要和抽象方法保持一致
被引用的方法的功能要滿足當(dāng)前需求
被引用處需要是函數(shù)式接口
::是方法引用符
例2:將數(shù)字字符串轉(zhuǎn)為純數(shù)字
引用成員方法
格式:對(duì)象::成員方法
其他類:其他類對(duì)象::方法名
本類:this::方法名(引用處不能是靜態(tài)方法)
父類:super::方法名(引用處不能是靜態(tài)方法)
例:
新建一個(gè)StringOperation類寫test方法
如果要引用本類中的方法
引用構(gòu)造方法
格式:類名::new
范例:Student::new
使用類名引用成員方法
格式:類名::成員方法
范例:String::substring
這種方法特殊的引用規(guī)則
需要有函數(shù)式接口
被引用的方法必須已經(jīng)存在
被引用的方法的形參需要根抽象方法的第二個(gè)形參到最后一個(gè)形參保持一致,返回值需要保持一致
抽象方法形參的詳解:
第一個(gè)參數(shù):表示被引用方法的調(diào)用者,決定了可以引用哪些類中的方法
在Stream流當(dāng)中,第一個(gè)參數(shù)一般都表示流里面的每一個(gè)數(shù)據(jù)
假設(shè)流里面是字符串,那么使用這種方法引用,只能使用String這個(gè)類中的方法
第二個(gè)參數(shù)到最后一個(gè)參數(shù),跟被引用方法的形參保持一致,如果沒(méi)有第二個(gè)參數(shù),說(shuō)明被引用的方法需要是午餐的成員方法
局限性:
不能引用所有類中的成員方法
是跟抽象方法第一個(gè)參數(shù)有關(guān),這個(gè)參數(shù)是什么類型的,那么就只能引用這個(gè)類中的方法
引用數(shù)組的構(gòu)造方法
格式:數(shù)據(jù)類型[]::new
范例:int[]::new
細(xì)節(jié):數(shù)組的類型,需要跟流中數(shù)據(jù)的類型保持一致
總結(jié)
引用靜態(tài)方法 類名::靜態(tài)方法
引用成員方法 對(duì)象::成員方法 this::成員方法(不能是靜態(tài)的) super::成員方法(不能是靜態(tài)的)
引用構(gòu)造方法 類名::new
使用類名引用成員方法 類名::成員方法
注意:不能引用所有類中的成員方法,如果抽象方法的第一個(gè)參數(shù)使A類型的,只能引用A類中的方法
引用數(shù)組的構(gòu)造方法 數(shù)據(jù)類型[]::new