java8 新特性5 方法引用
创始人
2024-04-04 17:15:41
0

一 方法引用

:: 该符号为引用运算符,而它所在的表达式被称为方法引用

二 案例实操

2.1 对象实例方法

引用对象的实例方法,其实就引用类中的成员方法

  • 格式

    对象::成员方法

1.接口

public interface Duixiang {public String toUpper(String str);
}

2.定义一个转换大小写的类

public class Zhuan {public String toZhuan(String str){return str.toUpperCase();}
}

3.测试结果:

public class TestDuixiang {public static void main(String[] args) {//lamda表达式Duixiang duixiang=(x)->{return x.toUpperCase();};String k= duixiang.toUpper("ssss");System.out.println("k:"+k);//实例2Zhuan z=new Zhuan();Duixiang duixiang1=z::toZhuan;String t=duixiang1.toUpper("abcdd");System.out.println("t:"+t);}
}

 2.2  类方法

1.接口

public interface H {public  int H(String x);
}

2.调用

public class TestLei {public static void main(String[] args) {H m=(x)->{return Integer.parseInt(x); };int n=m.H("5");System.out.println("n:"+n);//方式2H h= Integer::parseInt;int k= h.H("5");System.out.println("k:"+k);}
}

3.调用结果

2.3  类-实例方法

引用类的实例方法,其实就是引用类中的成员方法

格式

类名::成员方法

1接口

public interface LeiMethod {public String getSubString(String str,int x,int y);
}

2.调用类

public class TestLeiMethod {public static void main(String[] args) {//方式1LeiMethod lm=(String x,int m,int n)->{return x.substring(m,n);};String s=lm.getSubString("qwertrrereeew",0,4);//String ss=get("qwertrrereeew",String::substring);System.out.println("ss:"+ss);}public static String get(String str,LeiMethod lm){return lm.getSubString(str,0,4);}
}

3.结果

 2.4  构造器的使用

引用构造器,其实就是引用构造方法

  • l格式

    类名::new

1.接口

public interface Gou {public Teacher getTeacher(String name,int age);
}

2.调用

package diaoyong;/*** @ClassName: TestTeacher* @Description: TODO* @Author: liujianfu* @Date: 2022/11/06 16:59:51 * @Version: V1.0**/
public class TestTeacher {public static void main(String[] args) {Gou g=(String name,int age)->{return new Teacher(name,age);};Teacher t= g.getTeacher("asdfas",45);System.out.println("name:"+t.getName()+" age"+t.getAge());//方式2Teacher tt=  get(Teacher::new);System.out.println("name:"+tt.getName()+" age"+tt.getAge());//方式3Gou gg=Teacher::new;Teacher c= gg.getTeacher("adfa",456);System.out.println("name:"+c.getName()+" age"+c.getAge());}public static Teacher get(Gou g){Teacher t= g.getTeacher("ass",40);return t;}
}

3.结果

 

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...