Java 函数编程简介

Lambda表达式采用函数式编程,以下介绍Java8定义的几个常用的函数式接口。


Consumer:消费型接口

Method: void accept(T t); 有参数,无返回
Code:

Consumer consumer = System.out::println;
consumer.accept("segmentfault");

Extend:

  • andThen(Consumer after);

Supplier:供给细型接口

Method: T get(); 无参数,有返回
Code:

Supplier fun = () -> "response";
System.out.println(fun.get());

Function:函数型接口

Method: R apply(T t); 有参数,有返回
Code:

Function fun = e -> e+1;
int r = fun.apply(1);

Extend:

  • compose(Function before);
  • andThen(Function after);

Predicate:断言型接口

Method: boolean test(T t); 有参数,返回true|false
Code:

Predicate fun = e -> e == 1;
boolean r = fun.test(1);

Extend:

  • and(Predicate other); -> &&
  • or(Predicate other); -> or
  • negate(); -> ^

Bi型接口

BiConsumer、BiFunction、BiPrediate 是 Consumer、Function、Predicate 的扩展,可以传入多个参数,没有 BiSupplier 是因为 Supplier 没有入参。


自定义接口

Code:

@FunctionalInterface 
public interface ConsumerFunction { 
    void fun(int i); 
}

包:java.util.function

参考:
java8 函数编程

你可能感兴趣的:(java)