目录

​ 函数式接口分类​

​以Consumer为例​

​demo​




 函数式接口分类



  • ​Function<T,R>​​ T 作为输入,返回的 R 作为输出
  • ​Predicate<T>​​ T 作为输入 ,返回 boolean 值的输出
  • ​Consumer<T>​​ T 作为输入 ,没有输出
  • ​Supplier<R>​​ 没有输入 , R 作为输出
  • ​BinaryOperator<T>​​ 两个 T 作为输入 ,T 同样是输出
  • ​UnaryOperator<T>​​​ 是 ​​Function​​ 的变种 ,输入输出者是 T

JAVA8特性:函数式接口Supplier、Function、Predicate、Consumer使用方法_java



以Consumer为例


① Consumer是一个接口,并且只要实现一个 ​​accept​​ 方法,就可以作为一个“消费者”输出信息。

② 其实,lambda 表达式、方法引用的返回值都是 Consumer 类型,所以,他们能够作为 ​​forEach​​ 方法的参数,并且输出一个值。


demo

package com.nio4444.demo.java8;

import com.google.common.collect.Lists;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class ConsumerDemo {
public static void main(String[] args) {
List list = new ArrayList();

//入参b,类型String
Consumer<String> parseConsumer = b->{
list.add(Integer.parseInt(b)) ;
} ;
Arrays.asList("1","2","34").forEach(parseConsumer);

System.out.println(list) ; //[1, 2, 34]
}
}