溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java 函數編程 java.util.function.Consumer

發布時間:2020-07-22 14:53:14 來源:網絡 閱讀:1368 作者:北極冷冷冷 欄目:編程語言

java.util.function
Consumer<T> 接收T對象,不返回值

    作用:
        消費某個對象

    Iterable接口的forEach方法需要傳入Consumer,大部分集合類都實現了該接口,用于返回Iterator對象進行迭代。
    Iterable  forEach 函數:
    default void forEach(Consumer<? super T> action) {
    Objects.requireNonNull(action);
    for (T t : this) {
        action.accept(t);
    }
}

    使用場景:
        forEach 自定義處理的邏輯代碼,靈活多變

        demo

         public static void main(String[] args) {

    Consumer<Integer> methodParam  = HelloHandler::staticMethod;
    Consumer<Integer> methodParam1  = HelloHandler::staticMethod;
    Consumer<Integer> methodParam2 =  methodParam.andThen(methodParam1);
    methodParam2.accept(1);
    BiConsumer<HelloHandler,Integer> biConsumer = HelloHandler::normalMethod;

// methodParam1.accept(2);
// HelloHandler helloHandler = new HelloHandler();
//
// Function<Integer,Integer> function = new HelloHandler()::normalMethod;
// System.out.println( function.apply(1));

// Consumer<Integer> methodParam1 = helloHandler::normalMethod;

    List<String> list = new ArrayList<>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.forEach(new DemoConsumer());
}
    static class DemoConsumer implements Consumer<String>{

    @Override
    public void accept(String s) {
        //處理業務邏輯代碼
        System.out.println("s = [" + s + "]");
    }
}

    這樣邏輯代碼就分離出來了

    可以簡化為 lambda 表達式:
    list.forEach(c->{
        //處理業務邏輯代碼
        System.out.println("c = [" + c + "]");
    });
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女