Java8学习笔记(八)--方法引入的补充
在Java8学习笔记(三)--方法引入中,简要总结了方法引入时的使用规则,但不够完善。这里补充下几种情况:
从形参到实例方法的实参
示例
public class Example {
static List<Integer> intList = Arrays.asList(1,2,3,4);
public String increment(int i)
{
return String.valueOf(++i);
}
@Test
public void testLambda()
{
//.map(this::increment)<=>.map(i->example.increment(i))...
intList.stream().map(this::increment).forEach(System.out::println);
}
}
从形参到目标
示例
Stream.of("a","b").map(String::toUpperCase).forEach(System.out::println);
从形参到构造函数实参
示例
static List<String> strList = Arrays.asList("a","b","c","d");
//.map(String::new) <=> str->new String(str)
strList.stream().map(String::new).forEach(System.out::println);
传递两个形参作为实参
示例
List<Integer> intList = Arrays.asList(1,2,3,4);
//Integer::sum <=> (a,b)->Integer.sum(a,b)
int i =intList.stream().reduce(Integer::sum).get();
System.out.println(i);
第一个形参作为调用的目标而传递
示例
//String::concat <=> (a,b)->a.concat(b)
Stream.of("a","b").reduce("",String::concat);
原文
传递表达式(pass-through lambdas)的替代方案
Java8学习笔记(八)--方法引入的补充的更多相关文章
- Java8学习笔记目录
Java8学习笔记(一)--Lambda表达式 Java8学习笔记(二)--三个预定义函数接口 Java8学习笔记(三)--方法引入 Java8学习笔记(四)--接口增强 Java8学习笔记(五)-- ...
- Java IO学习笔记八:Netty入门
作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+ ...
- Java8学习笔记----Lambda表达式 (转)
Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...
- python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑
python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...
- go微服务框架kratos学习笔记八 (kratos的依赖注入)
目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...
- Go语言学习笔记八: 数组
Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
随机推荐
- java中线程安全的map是ConcurrentHashMap
原理:http://www.cnblogs.com/ITtangtang/p/3948786.html 与hashtable的区别: http://blog.csdn.net/songfeihu08 ...
- DragonBones的下载和安装
DragonBones也称龙骨,是一款骨骼动画制作软件.DragonBones Pro是由Flash的龙骨骨骼动画插件进化而来的,与传统逐帧动画相比,骨骼动画资源较小且动画效果比较好. DragonB ...
- unity下3d模型的透明处理
1.若只是改变模型的透明度:点击模型,在Inspector中可以看到很多模型的属性.找到要改变透明度的地方,更改shader渲染的方式选中Transparent(透明度)的diffuse,之后调节Ma ...
- C# 添加动态属性
1.ExpandoObject(System.Dynamic) 2.JObject(Newtonsoft.Json.Linq)
- IO流(1)—之序列化与反序列化
1.概念 序列化:把Java对象转换为字节序列的过程称为对象的序列化 反序列化:把字节序列恢复为Java对象的过程称为对象的反序列化 注:只有实现了Serializable和Externalizabl ...
- iOS: 数据持久化方案
数据持久化方案(如果总结不到位,或者有误的地方,敬请斧正) 一.功能: 主要是将数据持久化到本地,减少对网络请求的次数,既节省了用户的流量,也增强了App的体验效果. 二.种类: plist存储:使 ...
- 端口转发工具rinetd的安装与配置
端口映射和转发在实际应用中非常常见,比如一个局域网只有一台服务器可以被互联网访问到,那么如果想通过互联网访问局域网中其他的服务,最常用的方式就是在这一台机器上开放端口,然后转发至局域网中其他主机的端口 ...
- linux centos 7上运行teamviewer与找不到ID问题处理办法
以前在raspberryPi上搞过teamviewer,现在用了CentOS服务器,搞了一个vpn,访问还有点问题,时间紧张,就先给teamviewer. 而centos7 上安装也比较简单,几条命令 ...
- 微软补丁安装工具wusa报错。
命令行需要msu格式的补丁安装文件的全路径,否则报错.
- shell基础语法以及监控进程不存在重新启动
转码 # dos2unix ./test.sh 权限 # chmod a+x ./test.sh 语法变量var="111"echo $varecho ${var} 运算no1=4 ...