[一、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));
}
}