JAVA8 Consumer接口

Consumer的語義是消費的意思,瞭解一些消息隊列的同學,肯定對這個單詞,有一定的理解,我們先看接口的定義

@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); };
    }
}


這個接口,接收一個泛型的參數T,然後調用accept,對這個參數做一系列的操作,沒有返回值;看到這裏,是不是很懵,下面用一個簡單的小例子

Consumer<Integer> consumer = x -> {
            int a = x + 2;
            System.out.println(a);// 12
            System.out.println(a + "_");// 12_
        };
        consumer.accept(10);

調用accept的時候,傳入一個泛型T的參數Integer,然後定義參數對一系列操作,然後打印這些值;

只有調用了

consumer.accept(10);
這個函數,控制檯纔會 有輸出;還是很懵?

其實,主要是理解Consumer,消費者,就可以了~主要是對入參做一些列的操作,在stream裏,主要是用於forEach;內部迭代的時候,對傳入的參數,做一系列的業務操作,沒有返回值;

這個接口,只有一個默認方法,看下注釋內容,就清楚用法了,就不在寫案例解釋了

/**傳入一個Consumer類型的參數,
     *他的泛型類型,
     *跟本接口是一致的T,先做本接口的accept操作,
     *然後在做傳入的Consumer類型的參數的accept操作
    */
    default Consumer<T> andThen(Consumer<? super T> after) {
        Objects.requireNonNull(after);
        return (T t) -> { accept(t); after.accept(t); };
    }

 

1.lambda表達式
《java8 Lambda表達式簡介》

《java8 lambda表達式,方法的引用以及構造器的引用》

2.函數式接口
《java8 函數式接口簡介》

《JAVA8 Function接口以及同類型的特化的接口》

《JAVA8 Consumer接口》

《JAVA8 Supplier接口》

《JAVA8 UnaryOperator接口》

《JAVA8 BiConsumer 接口》

3.stream接口操作

《java8 Stream接口簡介》

《 java8 Stream-創建流的幾種方式》

《JAVA8 stream接口 中間操作和終端操作》

《JAVA8 Stream接口,map操作,filter操作,flatMap操作》

《JAVA8 stream接口 distinct,sorted,peek,limit,skip》

《java8 stream接口 終端操作 forEachOrdered和forEach》

《java8 stream接口 終端操作 toArray操作》

《java8 stream接口 終端操作 min,max,findFirst,findAny操作》

《java8 stream接口終端操作 count,anyMatch,allMatch,noneMatch》

《java8 srteam接口終端操作reduce操作》

《java8 stream接口 終端操作 collect操作》

4.其他部分

《java8 Optional靜態類簡介,以及用法》

發佈了13 篇原創文章 · 獲贊 12 · 訪問量 4550
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章