• 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());
        }
    

  • 相关阅读:
    问题 B: 投简历
    问题 C: P4 游戏中的Human角色
    绘制直方图
    绘制条形图
    绘制散点图
    问题 A: E2 驾驭const
    问题 B: 矩形类中运算符重载【C++】
    extjs tips
    extjs
    struts1
  • 原文地址:https://www.cnblogs.com/blackBlog/p/13451500.html
Copyright © 2020-2023  润新知