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学习笔记(八)--方法引入的补充的更多相关文章

  1. Java8学习笔记目录

    Java8学习笔记(一)--Lambda表达式 Java8学习笔记(二)--三个预定义函数接口 Java8学习笔记(三)--方法引入 Java8学习笔记(四)--接口增强 Java8学习笔记(五)-- ...

  2. Java IO学习笔记八:Netty入门

    作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+ ...

  3. Java8学习笔记----Lambda表达式 (转)

    Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家       本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...

  4. python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑

    python3.4学习笔记(八) Python第三方库安装与使用,包管理工具解惑 许多人在安装Python第三方库的时候, 经常会为一个问题困扰:到底应该下载什么格式的文件?当我们点开下载页时, 一般 ...

  5. go微服务框架kratos学习笔记八 (kratos的依赖注入)

    目录 go微服务框架kratos学习笔记八(kratos的依赖注入) 什么是依赖注入 google wire kratos中的wire Providers injector(注入器) Binding ...

  6. Mysql学习笔记(二)数据类型 补充

    原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...

  7. Learning ROS forRobotics Programming Second Edition学习笔记(八)indigo rviz gazebo

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS forRobotics Pro ...

  8. Go语言学习笔记八: 数组

    Go语言学习笔记八: 数组 数组地球人都知道.所以只说说Go语言的特殊(奇葩)写法. 我一直在想一个人参与了两种语言的设计,但是最后两种语言的语法差异这么大.这是自己否定自己么,为什么不与之前统一一下 ...

  9. 【opencv学习笔记八】创建TrackBar轨迹条

    createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...

随机推荐

  1. System.currentTimeMillis() uptimeMillis elapsedRealtime 区别

    System.currentTimeMillis()  系统时间,也就是日期时间,可以被系统设置修改,然后值就会发生跳变. uptimeMillis 自开机后,经过的时间,不包括深度睡眠的时间 ela ...

  2. 以为是tomcat出现using问题,怎么改都改不好终于找到原因

    我也是醉了被自己打败了,以上问题困扰我半天是时间,百度好久都没有解决.应该打开tomcat的bin下的starup.bat结果打开了tomcat-src中的了,怪不得死活出现不了startup

  3. Saltstack cp.get 模块

    语法 salt '*' cp.get_file salt://rr /etc/rr cp.get_url  可以从一个URL地址下载文件,URL可以是msater上的路径(salt://),也可以是h ...

  4. centos7 修改同步时间

    同步时间安装ntp软件 [root@node2 ~]# yum install ntp 将ntp设为开机启动 [root@node2 ~]# systemctl enable ntpd 修改启动参数, ...

  5. 淘宝bug bug bug

    手机淘宝(苹果版)出现了一个挺耀眼的bug...... 待评价有九个,如图 点进去评价6个之后,还有三个 再出来,待评价还是有九个. 重新打开,下拉刷新都不能改变

  6. Ping监控脚本

    需求 内网服务器之间高频率检验延时信息, 脚本特点 多进程,可同时异步监控多个地址,不会互相影响. 使用方式 创建文件夹(可以替换为你自己的,我这里就用我们生产环境的标准目录了) mkdir /dat ...

  7. Hadoop学习博客

    http://zy19982004.iteye.com/blog/monthblog_more

  8. float类型数保留一位小数

    float类型数保留一位小数 float a = 2.5f; float b = 1.2f; System.out.println(a/b); System.out.println((float)(M ...

  9. 从UEditor内容中获取指定节点值(转)

    今天吐槽一下百度的富文本编辑器UEditor,这种富文本编辑器极大地方便我们上传文件,开发人员无需编写任何上传代码,只需配置几个路径即可.但高度集成的东西有时也显得笨重,灵活度不高.比如:编辑器中我既 ...

  10. Redis在SSM项目中的简单使用

    一.基于SSM的Redis环境配置 前提是你的开发电脑安装和配置好了redis,如果没安装请看Window配置Redis环境和简单使用 1.1.pom文件中引入redis客户端jar包(pom.xml ...