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] + "。");

        });
    }
}
結果:
姓名:費哥哥。  性別:女。
姓名:歡歡姐。  性別:女。
姓名:嬌嬌妹。  性別:女。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM