Java8的四种函数式接口

java8提供的函数式接口在Function包下有几十个接口,但是这几十个接口是从下面4种接口扩展而来的。下面我们看看这四种函数式接口。

java8的函数式编程主要就是4类接口。

       Consumer(类似于消费者需要传入参数无返回值)

       Supplier(类似于生产者不需要传入参数,但有返回值)

       Function(有输入也有返回)

       Predicate(判断函数,有输入也有返回,返回trueor false)

下面我们从代码里面来看看这四种接口的用法

public class Test{
	public static void main(String[] arg){

		//类似于消费者 需要传入参数,不返回
		Consumer<String> c = (e)-> System.out.println(e);
		//bi = binary 二元的意思 即有两个参数的消费者
		BiConsumer<String,Integer> bc = (e,e2)-> System.out.println(e+e2);
		c.accept("zsq");
		bc.accept("zsq",22);


		//类似于生产者 不需要传入参数,但有返回值
		Supplier<String> s = ()-> {return "zsq";};
		System.out.println(s.get());
//Callable是concurent包的接口
		Callable<String> ca = ()->{return "zsq333";};
		System.out.println(ca.call());

		//function 有输入有输出
		Function<Integer, Boolean> f = (t)->t>3;
		BiFunction<Integer, Integer, Boolean> bf = (e1,e2)->e1+e2>4;
		System.out.println(f.apply(4));
		System.out.println(bf.apply(4,4));


		//Predicate 判断函数,接受参数 经过判断后 返回判断值
		Predicate<String> p = (e)->e.equals("null");
		BiPredicate<Integer, Integer> bp = (e1,e2)->e1==e2;
		System.out.println(p.test("null"));
		System.out.println(bp.test(3,4));
	}
}


猜你喜欢

转载自blog.csdn.net/qq_34310242/article/details/79178364
今日推荐