lambda表達(dá)式簡(jiǎn)寫之方法引用,引用Integer類中的toString方法,Function是數(shù)據(jù)轉(zhuǎn)換的函數(shù)式接口.//使用lambda寫沒(méi)問(wèn)題,可以實(shí)現(xiàn)Integer類型轉(zhuǎn)換成String類型Functionfunction30=t->Integer.toString(t);//使用方法引用簡(jiǎn)化上面的代碼,卻編譯報(bào)錯(cuò)Functionfunction3=Integer::toString;我的分析一:toString方法的參數(shù)是int類型,于是我自定義了一個(gè)f方法,如下,結(jié)果是正常引用該方法,不會(huì)報(bào)錯(cuò).說(shuō)明不是int類型的問(wèn)題,可以自動(dòng)拆箱Functionfunction2=_Lambda::f;publicstaticStringf(inti){returnInteger.toString(i);}我的分析二:toString方法有3個(gè)重載方法,于是我自定義了2個(gè)重載方法去嘗試,發(fā)現(xiàn)也沒(méi)有問(wèn)題不會(huì)報(bào)錯(cuò)//Integer中的3個(gè)重載方法publicstaticStringtoString(inti);publicstaticStringtoString(inti,intradix);publicStringtoString()//引用f2,不會(huì)報(bào)錯(cuò),可以實(shí)現(xiàn)類型轉(zhuǎn)換,說(shuō)明不是重載的問(wèn)題Functionfunction23=_Lambda::f2;publicstaticStringf2(Integeri){returnInteger.toString(i);}publicstaticStringf2(){return"123";}請(qǐng)問(wèn),Functionfunction3=Integer::toString;問(wèn)題出在了?為什么編譯報(bào)錯(cuò)?求解答!
lambda表達(dá)式簡(jiǎn)寫之方法引用,引用Integer類中的toString方法為什么編譯報(bào)錯(cuò)各位有什么建議?
牧羊人nacy
2019-10-16 10:13:07