Java8学习笔记(八)--方法引入的补充
2017-08-16 21:44
197 查看
在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)的替代方案相关文章推荐
- 【Java学习笔记】JFrame类的pack()与validate()方法的区别(待补充)
- [学习笔记]java Enumeration接口方法的学习
- Java学习笔记---13.面向对象编程08-Java中继承的概念,子类实例化过程,super()及方法复写
- Java学习笔记---5.Java数组和方法
- [Java学习笔记] 猜猜看(2) ~ 中断循环语句的一种方法(能够中断所有进行中的循环)
- Hibernate学习笔记 merge()方法--update 之补充
- Container.paint(Graphics g) 方法 -Java学习笔记(34)
- thinking in java学习笔记1——全面解读方法重载
- [Java Path Finder][JPF学习笔记][5]编译jpf-symbc报错的解决方法
- JNI学习笔记3——本地方法取得Java属性/调用java方法
- java学习笔记:声明方法时加入可变参数
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- 多态Object类equals方法学习笔记ObjectDemo.java
- java 设计模式 学习笔记(9) 模板方法模式
- JAVA学习笔记一:public和main方法
- {传智播客} (学习笔记)--eclipse插件引入方法
- 多态Object类toString方法学习笔记ObjectDemo.java
- Java学习笔记1------面向对象的思维方法
- java学习笔记九——构造函数、方法重写、重载
- [学习笔记]java Enumeration接口方法的学习