在Java8學習筆記(三)--方法引入中,簡要總結了方法引入時的使用規則,但不夠完善。這裏補充下幾種狀況:html
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);