Java8的Consumer、Supplier、Predicate、Function如何实现函数式编程?
摘要:今天我们还讲讲Consumer、Supplier、Predicate、Function这几个接口的用法,在 Java8 的用法当中,这几个接口虽然没有明目张胆的使用,但是,却是润物细无声的。为什么这么说呢?这几个接口都在 java.util
今天我们还讲讲Consumer、Supplier、Predicate、Function这几个接口的用法,在 Java8 的用法当中,这几个接口虽然没有明目张胆的使用,但是,却是润物细无声的。为什么这么说呢?这几个接口都在 java.util.function 包下的,分别是Consumer(消费型)、supplier(供给型)、predicate(谓词型)、function(功能性),相信有了后面的解释,你应该非常清楚这个接口的功能了。那么,下面,我们从具体的应用场景来讲讲这个接口的用法!
vConsumer
Java Consumer接口来自Java 8中引入的 java.util.function包。
Consumer是一个功能接口,用来作为lambda表达式或方法引用的任务目标(传递一个参数执行指定的方法)。
Consumer的功能接口是一个接受单一参数并且不返回任何结果的操作。
Consumer的功能方法是accept(T t)。
Consumer具有以下方法。
1. accept : 这是Consumer功能接口的功能方法。accept 方法对给定的参数进行这一操作。
2. andThen : 此方法返回一个组合的Consumer,该Consumer先执行原始的Consumer操作,然后按照从左到右的顺序执行给定的andThen操作。
功能方法:accept
功能方法accept在功能接口Consumer中的定义
void accept(T t)
使用示例
ConsumerAccept.java
import java.util.function.Consumer;
public class ConsumerAccept {
public static void main(String[] args) {
Consumer<String> nameConsumer = s -> System.out.println(s);
nameConsumer.accept("Mahesh");
nameConsumer.accept("Krishna");
}
}
输出
Mahesh
Krishna
使用Lambda表达式创建Consumer
可以使用lambda表达式创建Consumer。
例1 基础类型操作
在我们的示例中,我们将使用lambda表达式在此处创建两个Consumer。
一个用于将数字添加到列表的方法,如果数字为奇数,则将添加到具有奇数的列表中;如果数字为偶数,则将其添加到具有偶数的另一个列表中。
