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
相关推荐: 17. 从零开始编写一个类nginx工具, Rust中一些功能的实现
wmproxy wmproxy将用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,后续将实现websocket代理, 内外网穿透等, 会将实现过程分享出来, 感兴趣的可以一起造个轮子法 项目地址 gite: https:…