這些接口都有一個@FunctionalInterface注解冀宴,表明這個接口將是一個函數(shù)式接口,里面只能有一個抽象方法
Function
Function<T, R> => R apply(T t);
接受一個輸入?yún)?shù)温学,返回一個結(jié)果
Function<Integer, String> function1 = (x) -> "result: " + x;
function1.apply(6);
Predicate
Predicate<T> => boolean test(T t);
接受一個輸入?yún)?shù)略贮,返回布爾值
Predicate<String> predicate = (x) -> x.length() > 0;
predicate.test("String");
Consumer
Consumer<T> => void accept(T t);
接受一個輸入?yún)?shù),無返回值
Consumer<String> consumer = (x) -> System.out.println("consumer: " + x);
consumer.accept("Hello");
Supplier
Supplier<T> => T get();
無輸入?yún)?shù)仗岖,返回一個結(jié)果
Supplier<String> supplier = () -> "Test supplier";
supplier.get();