函数式接口Consumer
软件包 java.util.function
Interface Consumer<T>
Consumer接口是一个消费型接口,主要用于对给定的参数执行操作 (数据有去无回)
方法摘要 |
---|
返回值类型 | 方法 | 描述 |
---|---|---|
void | accept(T t) | 对给定的参数执行此操作 |
default Consumer | andThen(Consumer<? super T> after) | 返回一个组成的 Consumer ,依次执行此操作,然后执行 after操作 |
- 练习
1.对数据进行一次消费
2.对数据进行两次消费
import java.util.function.Consumer;
public class ConsumerDemo {
public static void main(String[] args) {
//将字符串"张彪"进行一次消费,打印到控制台
operatorString("张彪", s -> System.out.println(s));
//将字符串"张彪"进行两次消费
// 1.取出姓氏,打印到控制台
// 2.取出姓名,打印到控制台
operatorString("张彪", s -> System.out.println("姓:" + s.substring(0, 1)),
s -> System.out.println("名:" + s.substring(1)));
}
/**
* 定义一个方法,传参给 str 和 Consumer<T>接口,指定泛型<T>为String类型
* @param str 被消耗的数据
* @param con
*/
private static void operatorString(String str, Consumer<String> con){
con.accept(str);
}
/**
* 数据二次消费,可用andThen()方法连接
* @param str
* @param con1
* @param con2
*/
private static void operatorString(String str, Consumer<String> con1, Consumer<String> con2){
//对数据进行两次消费
// con1.accept(str);
// con2.accept(str);
//可使用andThen优化
con1.andThen(con2).accept(str);
}
}