Java8 函数式接口一览

函数式接口名称 方法名 参数 返回值
Function<T, R>R apply(T t)接收一个T参数返回一个R
Predicate< T>boolean test(T t)接收一个T的参数返回一个boolean结果
Consumer< T>void accept(T t)接收一个T的参数无返回值
Supplier< T>T get()无接收参数返回结果T
// Function<T, R> -T作为输入,返回的R作为输出   
Function<String,String> fun = (x) -> {System.out.print(x+": ");return "Function";};  
System.out.println(function.apply("hello world"));

//Predicate<T> -T作为输入,返回的boolean值作为输出
Predicate<String> pre = (x) ->{System.out.print(x);return false;};  
System.out.println(": "+pre.test("hello World"));

//Consumer<T> - T作为输入,执行某种动作但没有返回值   
Consumer<String> con = (x) -> {System.out.println(x);};  
con.accept("hello world");

//Supplier<T> - 没有任何输入,返回T   
Supplier<String> supp = () -> {return "Supplier";};  
System.out.println(supp.get());

//BinaryOperator<T> -两个T作为输入,返回一个T作为输出,对于“reduce”操作很有用   
BinaryOperator<String> bina = (x,y) ->{System.out.print(x+" "+y);return "BinaryOperator";};  
System.out.println(" "+bina.apply("hello ","world"));

自定义函数式

@FunctionalInterface