JAVA8特性:函式式介面Supplier、Function、Predicate、Consumer使用方法
阿新 • • 發佈:2021-02-19
目錄
函式式介面分類
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] } }