Java8方法引用和构造引用代码实例
这篇文章主要介绍了java8方法引用和构造引用代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一方法引用概述
方法引用是特定Lamda表达式的一种简写,其思路就是能替换Lamda表达式就直接调用函数使用方法名。
其语法格式:类名 :: 方法名。
二3种方法引用
1 指向静态方法的引用
语法格式: 静态类名(ClassName)::方法名(MethodName)
示例:
// 1 Lamda静态方法
@Test
public void LamdaSTest(){
String youku1327 = "1327";
Function function = s -> ObjectUtils.allNotNull(youku1327);
System.out.println(function.apply(youku1327));// true
}
// 静态方法引用
@Test
public void MethodRefTest(){
String youku1327 = "youku1327";
Function function = ObjectUtils::allNotNull;
System.out.println(function.apply(youku1327));// true
}
2 指向对象实例的方法的引用
语法格式:实例名称(instanceName)::方法名称(MethodName)
这个对象指的是非入参的外部对象
示例:
// 2 Lamda表达式
@Test
public void ObjectLamdaTest(){
Car car = new Car("100", "black", "中", 20);
Supplier supplier = ()-> car.getColor();
System.out.println(supplier.get());//black
}
// 对象引用
@Test
public void ObjectRefTest(){
Car car = new Car("100", "black", "中", 20);
Supplier<String> supplier = car::getColor;
System.out.println(supplier.get());//black
}
3 指向实例的方法引用
语法格式:对象名称(ClassName)::方法名称(Method)
这个对象指的是入参对象
//3 Lamda表达式
@Test
public void InstanceMethodLamdaTest(){
Car car = new Car("100", "black", "中", 20);
Function<Car,String> function = s -> s.getColor();
System.out.println(function.apply(car));//black
}
@Test
public void InstanceMethodRefTest(){
Car car = new Car("100", "black", "中", 20);
Function<Car,String> function = Car::getColor;
System.out.println(function.apply(car));//black
}
三构造器引用
语法格式:对象名称(ClassName)::new
@Test
public void constructLamdaTest(){
BiFunction<String,Double,Car> biFunction = (s, aDouble) -> new Car(s,aDouble);
Car car = biFunction.apply("youku1327", 50.0);
// Car(code=youku1327, color=null, factory=null, price=50.0)
System.out.println(car);
}
@Test
public void construcMethodRefTest(){
BiFunction<String,Double,Car> biFunction = Car::new;
Car car = biFunction.apply("youku1327", 50.0);
// Car(code=youku1327, color=null, factory=null, price=50.0)
System.out.println(car);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持无名。
同类资源
- XML模块,XML调用和构造
XML模块,XML调用和构造本文件感兴趣的可以参考一下,最近闲来无事写的模块。...
- 解决eclispe导入web项目报错的方法
解决eclispe导入web项目报错的方法本文件感兴趣的可以参考一下,把WEB项目导入到eclipse,如果在项目图标左下...
- 服务器组件多线程,用写内存的方法
易语言服务器组件多线程,用写内存的方法例子源代码,可以支持多少连接我没有测试,你们可以测试了发布出来。...
- 利用百度API实现语音合成的方法
易语言利用百度API实现语音合成的方法例子源代码,科宝机器的目标是做出一个较为完善桌面机器人。...
- 注册大漠插件到系统,百分百成功,调用了6种方法
易语言注册大漠插件到系统,百分百成功,调用了6种方法例子源代码,请自行添加,里面的大漠名称请替换成你自己的,...
- 软件试用时间控制方法,玄冰皮肤模块反编译版
易语言软件试用时间控制方法,玄冰皮肤模块版反编译例子源代码,秒转换为时间。...
- Mysql简单使用方法
易语言Mysql简单使用方法例子源代码,只演示了对Mysql数据库的查询、删除、修改、新增等操作。...
- 最简单的局部热键,局部快捷键实现方法
易语言最简单的局部热键,局部快捷键实现方法例子源代码,回复大多文不对题所以这里就做了一个小例程。...
- JS里扣出来的加密方法
易语言JS里扣出来的加密方法例子源代码,想写个解密帮忙写个解密出来可以不。...
- Android编程实现应用自动更新、下载、安装方法
Android编程实现应用自动更新、下载、安装方法本文件感兴趣的可以参考一下,本文实例讲述了Android编程实现...
- TDC数组参数组合方法
易语言TDC数组参数组合方法例子源代码,把TDC数组参数组合方法改写成E,还没进行测试具体能不能提交成功。...
- 相关干涉仪测向方法matlab仿真
相关干涉仪测向方法matlab仿真本文件感兴趣的可以参考一下,计算两元间的相位差,形成标准库,并通过相关的方式...