Consumer 是 Java 8 中的一个预定义函数式接口,用于表示接受一个输入参数 T 并执行某些操作但没有返回值的操作。
Consumer 接口中定义了一个抽象方法 void accept(T t),该方法接受一个参数 t,表示要执行的操作。你可以使用 accept() 方法来定义具体的操作逻辑。
以下是使用 Consumer 接口的示例代码:
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;
public class ConsumerExample {
public static void main(String[] args) {
// 定义一个字符串列表
List fruits = Arrays.asList("Apple", "Orange", "Banana", "Mango");
// 使用 Consumer 接口实现遍历输出每个水果的操作
Consumer printFruit = fruit -> System.out.println(fruit);
fruits.forEach(printFruit);
// 可简化为以下形式
fruits.forEach(System.out::println);
}
}
打印结果:
Apple
Orange
Banana
Mango
在上面的示例中,我们首先创建了一个字符串列表 fruits,然后创建了一个 Consumer 对象 printFruit,通过 lambda 表达式实现了 accept() 方法的具体操作,即打印每个水果的名称。
使用 forEach() 方法结合 Consumer 接口,可以简洁地遍历列表并执行指定的操作。
下边是 forEach() 方法的源码:
default void forEach(Consumer super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}
在 forEach 方法的实现中,首先检查传入的 action 是否为 null,如果为 null,则会抛出 NullPointerException。然后,它使用增强的 for 循环遍历 this(即当前 Iterable 对象),对每个元素执行 action.accept(t),其中 t 是当前元素。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: Ribbon IPing机制源码探秘
IPing机制
用时间换空间
Ribbon IPing机制源码探秘🍊 Java学习:社区快速通道 🍊 深入浅出RocketMQ设计思想:深入浅出RocketMQ设计思想 🍊 绝对不一样的职场干货:大厂最佳实践经验指南 📆 最近更新:2023年7月2日 🍊 点赞 👍 收藏 ⭐留言 📝 都是我最大的动力! 文章目录 IPing机…