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