Java8之Consumer接口

Consumer:代表了接受一个输入参数并且无返回的操作,相当于消费者。

函数式接口介绍

从JDK8开始java支持函数式编程,JDK也提供了几个常用的函数式接口,例如Consumer接口。函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。Java为函数式接口引入了一个新注解@FunctionalInterface,主要用于函数式接口编译级错误检查。函数式接口可以被隐式转换为lambda表达式。

查看源码

package java.util.function;
import java.util.Objects;

@FunctionalInterface
public interface Consumer<T> {
    void accept(T t);

    default Consumer<T> andThen(Consumer<? super T> after) {
        Objects.requireNonNull(after);
        return (T t) -> { accept(t); after.accept(t); };
    }
}

测试

import java.util.function.Consumer;
public class Test {
    public static void printInfo(String[] strArr, Consumer<String> con1, Consumer<String> con2){
        for (int i = 0; i < strArr.length; i++) {
            con1.andThen(con2).accept(strArr[i]);
        }

    }

    public static void main(String[] args) {
        String[] strArr = {"费哥哥,女","欢欢姐,女","娇娇妹,女"};
        printInfo(strArr,(message)->{
            System.out.print("姓名:" + message.split(",")[0] + "。  ");
        },(message)->{
            System.out.println("性别:" + message.split(",")[1] + "。");

        });
    }
}
结果:
姓名:费哥哥。  性别:女。
姓名:欢欢姐。  性别:女。
姓名:娇娇妹。  性别:女。
原文地址:https://www.cnblogs.com/feiqiangsheng/p/11222046.html