【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));

    }
}

执行结果

相关推荐
Tony Bai3 小时前
“我曾想付钱给 Google 去工作”—— Russ Cox 深度访谈:Go 的诞生、演进与未来
开发语言·后端·golang
sali-tec3 小时前
C# 基于halcon的视觉工作流-章66 四目匹配
开发语言·人工智能·数码相机·算法·计算机视觉·c#
45288655上山打老虎3 小时前
C++完美转发
java·jvm·c++
Seven973 小时前
查找算法
java
hnlgzb4 小时前
安卓app开发,如何快速上手kotlin和compose的开发?
android·开发语言·kotlin
无敌最俊朗@4 小时前
STL-deque面试剖析(面试复习4)
开发语言
APIshop4 小时前
用 Python 把“API 接口”当数据源——从找口子到落库的全流程实战
开发语言·python
毕设源码-朱学姐4 小时前
【开题答辩全过程】以 公务员考试在线测试系统为例,包含答辩的问题和答案
java
serendipity_hky5 小时前
【SpringCloud | 第2篇】OpenFeign远程调用
java·后端·spring·spring cloud·openfeign
Java Fans5 小时前
Qt Designer 和 PyQt 开发教程
开发语言·qt·pyqt