1. 程式人生 > 其它 >JAVA8特性:函式式介面Supplier、Function、Predicate、Consumer使用方法

JAVA8特性:函式式介面Supplier、Function、Predicate、Consumer使用方法

技術標籤:JAVA# Java8

目錄

函式式介面分類

以Consumer為例

demo



函式式介面分類

  • Function<T,R>T作為輸入,返回的R作為輸出
  • Predicate<T>T作為輸入 ,返回boolean值的輸出
  • Consumer<T>T作為輸入 ,沒有輸出
  • Supplier<R>沒有輸入 ,R作為輸出
  • BinaryOperator<T>兩個 T作為輸入 ,T同樣是輸出
  • UnaryOperator<T>Function的變種 ,輸入輸出者是T

以Consumer為例

① Consumer是一個介面,並且只要實現一個 accept

方法,就可以作為一個“消費者”輸出資訊。

② 其實,lambda 表示式、方法引用的返回值都是 Consumer 型別,所以,他們能夠作為 forEach 方法的引數,並且輸出一個值。

demo

package com.nio4444.demo.java8;

import com.google.common.collect.Lists;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.function.Consumer;

public class ConsumerDemo {
    public static void main(String[] args) {
        List list = new ArrayList();

        //入參b,型別String
        Consumer<String> parseConsumer = b->{
            list.add(Integer.parseInt(b)) ;
        } ;
        Arrays.asList("1","2","34").forEach(parseConsumer);

        System.out.println(list) ; //[1, 2, 34]
    }
}