zoukankan      html  css  js  c++  java
  • java8lambda表达式初识

    一、函数式接口

    只有一个 抽象方法接口 叫函数式接口

    /**
     * @auther hhh
     * @date 2018/12/24 22:20
     * @description 函数式接口:只有 一个 抽象方法 的接口叫函数式接口
     * default、static、Object中的方法除外,其他的抽象方法
     */
    @FunctionalInterface//注解:java8提供的,只能标注在函数式接口之上,如果这个类不是一个函数式接口,就会报错
    public interface UserMapper {
        int insert();//只有一个insert()的接口是函数式接口,他就一个抽象方法
        default int update() {//不是函数式接口
            return 1;
        }
        static int delete() {//不是函数式接口
            return 1;
        }
        //Object中的方法都不是函数式接口(与Object中一样的方法),例如:
        public int hashCode();
        /**
         * jdk1.8之前的一些函数式接口
         * 1、java.lang.Runable
         * 2、java.util.Comparator
         * 3、java.util.concurrent.Callable
         */
    }

     二、java8中最重要的函数式接口

    java8将函数式接口存放在 External Libraries->rt.jar->java->util->function包中,以下函数式接口是非常重要的。

    • Supplier<T> 代表一个输出
    • Consumer<T> 代表一个输入(一个消费)
    • BiConsumer<T, U> 代表两个输入
    • Function<T, R> 代表一个输入一个输出,T 是输入 R 是输出(输入输出是不同类型
    • UnaryOperator<T> extends Function<T, T> 继承 Function,但是没有添加方法,只是将输入输出变成同一种T类型(输入输出是同种类型
    • BiFunction<T, U, R> 代表两个输入一个输出(一般是输入和输出是不同类型的)
    • BinaryOperator<T> extends BiFunction<T,T,T> 代表两个输入一个输出(输入和输出的类型是一致的,类型都是 T )

    一般有Bi的代表两个的意思

    总结:学习lambda表达式,最重要的是泛型与函数式接口

  • 相关阅读:
    Create a toolwindow for the VBA editor with .NET(C#).
    批量采集世纪佳缘会员图片及winhttp异步采集效率
    写了一个Windows API Viewer,提供VBA语句的导出功能。提供两万多个API的MSDN链接内容的本地查询
    mysql主从复制
    windows实现MySQL主从复制
    理解“业务逻辑”的含义
    数据库主从复制与读写分离(了解)
    windows下npm安装vue
    phpstorm中配置真正的远程调试(xdebug)
    PHP常量详解:define和const的区别
  • 原文地址:https://www.cnblogs.com/huanghuanghui/p/10171589.html
Copyright © 2011-2022 走看看