zoukankan      html  css  js  c++  java
  • 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());
        }
    

  • 相关阅读:
    【开发技术】Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)
    【开发技术】Xcode3与xcode4.2模板对比(Xcode4.2开发之一些变化)
    cobol
    头文件的相互包含会导致错误
    ndk eclipse集成
    为何要用到NDK?
    Android之NDK开发
    一个完整的NDK编译过程
    NDK中 .so文件的加载
    Android.mk 变量解释
  • 原文地址:https://www.cnblogs.com/blackBlog/p/13451500.html
Copyright © 2011-2022 走看看