常用的函数式接口Consumer接口的默认方法andThen

package com.chunzhi.Test05Consumer;

import java.util.function.Consumer;

/*
    Consumer接口的默认方法andThen
    作用:需要两个Consumer接口,可以把两个Consumer接口组合到一起,再对数据进行消费

    例如:
        Consumer<String> con1
        Consumer<String> con2
        String s = "Hello";
        con1.accept(s);
        con2.accept(s);
        连接两个Consumer接口 再进行消费
        con1.andThen(con2).accept(s);   谁写前边谁先消费
 */
public class Test02AndThen {
    // 定义一个方法,方法的参数传递一个字符串和两个Consumer接口,Consumer接口的泛型使用字符串
    public static void method(String s, Consumer<String> con1, Consumer<String> con2) {
        /*con1.accept(s);
        con2.accept(s);*/
        // 使用andThen方法,把两个Consumer接口连接到一起,再消费数据
        con1.andThen(con2).accept(s); // con1连接到con2,先执行con1消费数据,再执行con2消费数据
        // 如果有多个Consumer接口,就可以用andThen一直连接
    }

    public static void main(String[] args) {
        // 调用method方法,传递一个字符串,两个Lambda表达式
        method("Hello",
                (s) -> {
                    // 把字符串转换为大写输出
                    System.out.println(s.toUpperCase());
                },
                (s) -> {
                    // 把字符串转换为小写输出
                    System.out.println(s.toLowerCase());
                });
    }
}

 

posted @ 2020-11-29 18:04  春志  阅读(539)  评论(0编辑  收藏  举报