consumer
consumer 接口是一个函数式接口,它接收一个参数并执行某些操作,但不返回结果。它通常用于需要对输入进行处理但不需要返回值的场景。
Consumer<T>
是 Java 8 引入的一个函数式接口,它位于 java.util.function
包中。这个接口代表了一个接受单个输入参数并且不返回任何结果的操作。 Consumer<T>
接口主要用于对一个给定的参数执行某些操作而不需要返回结果,这样的操作往往是带有副作用的,比如修改外部状态、打印日志等。
方法
void accept(T t)
:应用在此函数上给定的参数。
此外,Consumer<T>
接口还提供了一个默认方法:
default Consumer<T> andThen(Consumer<? super T> after)
:返回一个首先对此Consumer
执行,然后对指定的Consumer
执行的组合Consumer
。- 如果在调用过程中任一操作抛出异常,则后续操作不会执行,且将相同的异常抛出。
使用示例
下面是一个简单的例子,演示了如何使用 Consumer
接口来定义一个打印整数的方法,并结合 andThen
方法链式调用多个 Consumer
实例。
java
import java.util.function.Consumer;
public class ConsumerExample {
public static void main(String[] args) {
// 定义一个Consumer实例,用于打印字符串信息
Consumer<String> printUpperCase = str -> System.out.println(str.toUpperCase());
// 定义另一个Consumer实例,用于打印字符串长度
Consumer<String> printLength = str -> System.out.println("Length: " + str.length());
// 使用andThen组合两个Consumer操作
Consumer<String> printUpperCaseAndLength = printUpperCase.andThen(printLength);
// 应用组合后的Consumer操作
printUpperCaseAndLength.accept("hello world");
}
}