导航

1、Function<T, R> 

T:入参类型,R:出参类型

调用方法:R apply(T t); 

定义函数示例:Function<Integer, Integer> func = p -> p * 10;    // 输出入参的10倍

调用函数示例:func.apply(10);    // 结果100

    /**
     * Applies this function to the given argument.
     *
     * @param t the function argument
     * @return the function result
     */
    R apply(T t);

 

2、Consumer<T>

T:入参类型;没有出参

调用方法:void accept(T t);

定义函数示例:Consumer<String> consumer= p -> System.out.println(p);    // 因为没有出参,常用于打印、发送短信等消费动作

调用函数示例:consumer.accept("18800008888");

package com.hyc;
import java.util.function.Consumer;
public class Demo09Consumer {
    private static void consumeString(Consumer<String> function) {
        function.accept("Hello");
    }

    public static void main(String[] args) {
        consumeString(s -> System.out.println(s));
    }
}

 

3、Supplier<T>

T:出参类型;没有入参

调用方法:T get();

定义函数示例:Supplier<Integer> supplier= () -> 100;    // 常用于业务“有条件运行”时,符合条件再调用获取结果的应用场景;运行结果须提前定义,但不运行。

调用函数示例:supplier.get();

package com.hyc;
import java.util.function.Supplier;
public class Demo08Supplier {
    private static String getString(Supplier<String> function) {
        return function.get();
    }

    public static void main(String[] args) {
        String msgA = "Hello";
        String msgB = "World";
        System.out.println(getString(() -> msgA + msgB));
    }
}

 

4、Predicate<T>

T:入参类型;出参类型是Boolean

调用方法:boolean test(T t);

定义函数示例:Predicate<Integer> predicate = p -> p % 2 == 0;    // 判断是否、是不是偶数

调用函数示例:predicate.test(100);    // 运行结果true

package com.hyc;
import java.util.function.Predicate;
public class Demo15PredicateTest {
    private static void method(Predicate<String> predicate) {
        boolean veryLong = predicate.test("HelloWorld");
        System.out.println("字符串很长吗:" + veryLong);
    }

    public static void main(String[] args) {
        method(s -> s.length() > 5);
    }
}