Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

该文章投稿至Nemo社区   Java  板块 复制链接


[JAVA8 lambda编程] - Function、Predicate、Consumer、Supplier接口

发布于 2019/08/15 11:12 1,464浏览 0回复 681



这些接口都有一个@FunctionalInterface注解,表明这个接口将是一个函数式接口,里面只能有一个抽象方法

Function

Function<T, R> => R apply(T t);
接受一个输入参数,返回一个结果

Function<Integer, String> function1 = (x) -> "result: " + x;
function1.apply(6);

Predicate

Predicate<T> => boolean test(T t);
接受一个输入参数,返回布尔值

Predicate<String> predicate = (x) -> x.length() > 0;
predicate.test("String");

Consumer

Consumer<T> => void accept(T t);
接受一个输入参数,无返回值

Consumer<String> consumer = (x) -> System.out.println("consumer: " + x);
consumer.accept("Hello");

Supplier

Supplier<T> => T get();
无输入参数,返回一个结果

Supplier<String> supplier = () -> "Test supplier";
supplier.get();
点赞(0)
点了个评