lambda表达式简写之方法引用,引用Integer类中的toString方法,Function是数据转换的函数式接口.//使用lambda写没问题,可以实现Integer类型转换成String类型Functionfunction30=t->Integer.toString(t); //使用方法引用简化上面的代码,却编译报错Functionfunction3=Integer::toString; 我的分析一:toString方法的参数是int类型,于是我自定义了一个f方法,如下,结果是正常引用该方法,不会报错.说明不是int类型的问题,可以自动拆箱Functionfunction2=_Lambda::f; publicstaticStringf(inti){returnInteger.toString(i);}我的分析二:toString方法有3个重载方法,于是我自定义了2个重载方法去尝试,发现也没有问题不会报错//Integer中的3个重载方法publicstaticStringtoString(inti);publicstaticStringtoString(inti,intradix);publicStringtoString()//引用f2,不会报错,可以实现类型转换,说明不是重载的问题Functionfunction23=_Lambda::f2; publicstaticStringf2(Integeri){returnInteger.toString(i);}publicstaticStringf2(){return"123";}请问,Functionfunction3=Integer::toString;问题出在了?为什么编译报错?求解答!
温温酱
摇曳的蔷薇
相关分类