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

  • 相关阅读:
    数据结构(java语言描述)顺序栈的使用(两个大数相加)
    DB2 Sql性能查看与优化
    spring默认为单例模式
    Java map的匿名类的初始化
    使用nohup后台执行ftp传输命令
    停止一个java的线程执行
    静态类
    XML语法随记
    Crontab有关
    string转Date转回String(JAVA)
  • 原文地址:https://www.cnblogs.com/blackBlog/p/13451500.html
Copyright © 2011-2022 走看看