11. 四大函数式接口

新时代程序员:lambda 表达式、链式编程、函数式接口、Stream流式计算、(旧:泛型、枚举、反射)

函数式接口:只有一个方法的接口

@FunctionalInterface
public interface Runnable {
    public abstract void run();
}

// 简化编程模型,在新版本的框架底层大量应用

Function 函数式接口

// 源码
@FunctionalInterface
public interface Function<T, R> {

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

// 代码样例
    public static void test1(){
        /*Function<String, String> function = new Function<String, String>() {
            @Override
            public String apply(String o) {
                return o;
            }
        };*/

        Function function = (o)->{return o;};

        System.out.println(function.apply("122341"));
    }

Predicate 断定型接口:有一个输入参数,返回值只能是 布尔值!

// 代码样例
    public static void test4(){
        /*Predicate<String> predicate = new Predicate<String>() {
            @Override
            public boolean test(String o) {
                return o.isEmpty();
            }
        };*/
        
        Predicate<String> predicate = (str)->{return str.isEmpty()};

        System.out.println(predicate.test("dadsad"));
    }

Consumer 消费型接口:只有输入,没有返回值

// 代码样例
    public static void test2(){
        Consumer<String> consumer = (str )->{
            System.out.println(str);
        };

        consumer.accept("1211");
    }

Supplier 供给型接口: 没有参数,只有返回值

// 代码样例
    public static void test3(){
        Supplier<String> supplier = ()->{
            return "1234";
        };
        System.out.println(supplier.get());
    }

posted @ 2020-08-07 11:04  湘北不会输的  阅读(128)  评论(0编辑  收藏  举报