Consumer<T>、BiConsumer<T, U> 和 IntConsumer 是 Java 8 中的函数式接口,用于表示不同数量参数的消费者,并且它们之间存在一些区别。


1. Consumer<T>:接受一个参数并不返回任何结果的消费者。它定义了一个名为 accept(T t) 的抽象方法,用于对给定的参数进行处理操作。

  • 示例:
Consumer<String> printString = str -> System.out.println(str);
printString.accept("Hello!");  // 输出: Hello!

这个接口适用于对类型为 T 的参数进行处理的场景。

2. BiConsumer<T, U>:接受两个参数并不返回任何结果的消费者。它定义了一个名为 accept(T t, U u) 的抽象方法,用于对给定的两个参数进行处理操作。

  • 示例:
BiConsumer<String, Integer> printInfo = (name, age) -> System.out.println(name + " is " + age + " years old.");
printInfo.accept("Alice", 25);  // 输出: Alice is 25 years old.

这个接口适用于对两个输入进行处理的场景。

3. IntConsumer:接受一个 int 类型的参数并不返回任何结果的消费者。它定义了一个名为 accept(int value) 的抽象方法,用于对给定的 int 类型参数进行处理操作。

  • 示例:
IntConsumer printNumber = num -> System.out.println("The number is: " + num);
printNumber.accept(42);  // 输出: The number is: 42

这个接口适用于对 int 类型的参数进行处理的场景。


总结来说,Consumer<T> 是用于接受单个参数并进行处理的消费者,BiConsumer<T, U> 是用于接受两个参数并进行处理的消费者,而 IntConsumer 是用于接受 int 类型的参数并进行处理的消费者。


今夜有点儿凉
40 声望3 粉丝

今夜有点儿凉,乌云遮住了月亮。