【JDK 8-函数式编程】4.3 Consumer

[一、Consumer 接口](#一、Consumer 接口)

二、使用

[Stage 1: 创建方法,实现 Consumer 接口](#Stage 1: 创建方法,实现 Consumer 接口)

[Stage 2: 调用方法](#Stage 2: 调用方法)

[Stage 3: 执行结果](#Stage 3: 执行结果)

[三、List 的 foreach](#三、List 的 foreach)

执行结果


一、Consumer 接口

  • 消费型接口 : 将T作为输入,无返回值

  • **调用方法 :**void accept(T t);

  • **用途 :**因为没有出参,常用于打印、发送短信等消费动作

  • 典型应用,集合的 foreach

java 复制代码
/**
 *
 * @param <T> the type of the input to the operation
 */
@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);
}

二、使用

Stage 1: 创建方法,实现 Consumer 接口

java 复制代码
    public static void sendMsg(String phone, Consumer<String> consumer) {
        consumer.accept(phone);
    }

Stage 2: 调用方法

java 复制代码
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

@Slf4j
public class ConsumerFunc {
    public static void main(String[] args) {
        Consumer<String> consumer = obj -> {
            log.info(obj);
            log.info("调用短信接口、发送短信、打印日志等");
        };
        sendMsg("134XXXXXXXX", consumer);

    }

    public static void sendMsg(String phone, Consumer<String> consumer) {
        consumer.accept(phone);
    }
}

Stage 3: 执行结果

三、List 的 foreach

java 复制代码
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

@Slf4j
public class ConsumerFunc {
    public static void main(String[] args) {
        List<String> list = Arrays.asList("aaa", "bbb", "ccc", "ddd");
        list.forEach(s -> log.info(s));

    }
}

执行结果

相关推荐
OpenAnolis小助手13 小时前
PHP 两个严重漏洞曝光,龙蜥社区 24 小时完成 3 版本修复
开发语言·操作系统·php·龙蜥社区
鱼宵13 小时前
Stream 终端操作一次讲透:collect、count、reduce 怎么选
java·stream·终端操作
白山编程大哥13 小时前
Java 后端如何优雅地把 List 集合返回给前端
java·前端·list
Linux运维技术栈14 小时前
CVE-2026-91403 高危漏洞修复:Rocky Linux 9 多版本 JDK 环境清理实操
java·linux·运维
On The Road :14 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
阿尼卡~14 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows
Shaoshing14 小时前
LeetCode100 49. 字母异位词分组
java·算法
划破黑暗的第一缕曙光15 小时前
[C++]:5.STL:string(2)
java·c++·redis
hhhjhl15 小时前
Undici 跨端三方库仓颉适配全流程
java·开发语言·ubuntu
染指111015 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents