转自https://zhuanlan.zhihu.com/p/63107670
Java8里面引入了新的一个包java.util.function。里面定义了下面几个核心接口:
- Function<T,R>:接收一个参数,返回一个结果。
- Consumer<T>:接收一个参数,无返回。
- Predicate<T>:接收一个参数,返回一个boolean的结果。
- Supplier<R>:无参数,返回一个结果。
- BiFunction<T,V,R>:接收两个参数,返回一个结果。
- BiConsumer<T,V>:接收两个参数,无返回值。
- BiPredicate<T,V>:接收两个参数,返回boolean值。
Function接口
//function表示具有返回值的,具有一个参数的方法
Function<String,Integer> function1=Integer::valueOf;
Function function2=String::valueOf;
//可以用lambda表达式
Function<Object,String> function3=(a)->a.toString();
//报错,因为无返回值
//Function out=System.out::println;
//返回值是Boolean的function
String o="123";
Function<String,Boolean> function4=o::equals;
boolean equals=function4.apply("123");
Consumer接口
//Consumer可以用来表示只有一个参数,无返回值的方法
Consumer consumer=System.out::println;
consumer.accept("123");
//可以用lambda表达式
Consumer consumer2=(a)->{};
Predicate接口
//用Predicate来表示
Predicate<String> predicate=o::equals;
Supplier接口
//无参数有返回
Supplier<Integer> supplier=o::hashCode;
IntSupplier intSupplier=o::hashCode;
Supplier supplier2=()-> "test";
二元参数相关
//二个参数的函数
BiFunction<String,String, Boolean> test= (str,str2)->true;
BiConsumer<String,String> test2=(str,str2)->{};
BiPredicate<String,String> test3=(str,str2)->true;
本文由 Clive 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为:
2020/11/27 15:33