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这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
 
随机推荐
- 潭州课堂25班:Ph201805201 第六课:散列类型,运算符优先级和逻辑运算  (课堂笔记)
			
# # 集合:# se1 = { 1,3,4,5,'a'} # 如果直接添加元素,不能直接添加可变元素# se2 = set() # 定义一个空集合# se3 = {'a'} # 定义个单元素的集合# ...
 - jQuery UI练习
			
jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互.特效.小部件及主题.无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery ...
 - JavaScript原型之路
			
简介 最近我在学习Frontend Masters 上的高级JavaScript系列教程,Kyle 带来了他的“OLOO”(对象链接其他对象)概念.这让我想起了Keith Peters 几年前发表的一 ...
 - [Visual Studio] 未能完成操作 不支持此接口
			
vs2017添加引用时提示“未能完成操作 不支持此接口”, 一般情况下的处理办法:vs2017修复.修复是指重新安装,修改是指版本更新. 如果修复后仍然存在该问题,说明vs2017安装成功后部分功能未 ...
 - Mysql启动失败
			
错误提示: 服务名无效 错误原因: mysql服务没有安装. 解决方法: 管理员的权限运行cmd 用dos命令进入到mysql安装目录下再进入到bin目录下 运行mysqld -install命令
 - 使用 IntraWeb (36) - TIWServerControllerBase
			
每个应用须有且只有一个 Server Controller. TIWServerControllerBase 所在单元及继承链: IWServerControllerBase.TIWServerCon ...
 - C# 2015关键字
			
关键字是对编译器具有特殊意义的预定义保留标识符. 它们不能在程序中用作标识符,除非它们有一个 @ 前缀. 例如,@if 是有效的标识符,但if 不是,因为 if 是关键字. 本主题中的第一个表列出的关 ...
 - boost 线程安全队列
			
threadnullmethodsprocessingobjectsignal // QueueImplementation.cpp : Defines the entry point for the ...
 - 发布库到仓库 maven jcenter JitPack MD
			
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
 - MySQL实用工具汇总
			
本文收录了mysql相关的实用工具.工具包括:性能测试,状态分析,SQL路由,及运维开发相关的所有工具,并会持续更新. 1.工具套件集 - percona-toolkit - oak-toolkit ...