zoukankan      html  css  js  c++  java
  • Java8(二) 函数式接口

    函数式接口

    函数式接口指的是:有且仅有一个抽象方法,但是可以有多个非抽象方法的接口(接口默认方法)。

    1 @FunctionalInterface注解

    该注解标记一个接口为函数式接口。

    对于标注了这个注解的接口,编译器会强制检查该接口是否有且仅有一个抽象方法。否则会报错。

    即使不使用该注解,只要满足函数式接口的定义,就是一个函数式接口

    2 与Lambda表达式结合

    函数式接口可以被隐式转换为Lambda表达式。

    如果有一个方法使用函数式接口作为参数,那么就可以使用Lambda进行传参。

    比如线程中的Runable接口:

    //匿名内部类写法
    new Thread(new Runnable() {
        @Override
        public void run() {
            System.out.println("内部类写法");
        }
    }).start();
    
    //lambda 写法
    new Thread(() -> System.out.println("lambda写法")).start();  
    

    3 常用的函数式接口

    JDK 1.8 之前已有的函数式接口
    java.lang.Runnable
    
    java.util.concurrent.Callable
    
    java.util.Comparator
    
    JDK 1.8 新增加的函数接口
    //java.util.function包下
    Consumer<T>
    //消费者,使用已经准备数据
        
    Function<T,R>
    //输入一个或者两个不同或者相同的值转为另一个值
    
    Predicate<T>
    //输入一个或者两个不同或者相同的值总是输出boolean
    
    Supplier<T>
    //供应者,生产数据
        
    //。。。
    
  • 相关阅读:
    jquery 里面对数组去重操作-unique
    jquery序列化form表单
    [转载]说说JSON和JSONP,也许你会豁然开朗,含jQuery用例
    AMD和CMD的区别
    CSS中!important的使用
    HTML的map-area的使用
    CSS Sprite 精灵图
    UA 用户代理
    IE haslayout
    心情随笔
  • 原文地址:https://www.cnblogs.com/lyldelove/p/13296481.html
Copyright © 2011-2022 走看看