zoukankan      html  css  js  c++  java
  • Java8新特性02 函数式接口

    一. 什么是函数式接口

    函数式接口也叫功能性接口,也叫SAM接口,即Single Abstract Method interfaces,是只包含一个方法的接口(指抽象方法)。比如java标准库中的java.lang.Runnable,java.util.concurrent.Callable。

    二.如何标识

    在java8中通过@FunctionalInterface注解,将一个接口标注为函数式接口,该接口只能包含一个方法(抽象方法);

    @FunctionalInterface注解不是必须的,只要接口只包含一个方法,jvm也会自动判断该接口为函数式接口;

    一般建议在接口上使用这个注解进行声明,以免他人错误地往接口中添加新方法,如果在接口中定义了第二个抽象方法的话,编译器就会报错。

    三. 特点

    只有一个抽象方法

    可以有多个默认方法和静态方法; eg:java.util.Comparator

    函数式接口里允许定义java.lang.Object里的public方法(非final方法),比如上面的java.util.Comparator中的equal方法就是。

    四. 为何引入函数式接口

    主要是为lambda设计的,lambda表达式的方法体其实就是函数式接口的实现

  • 相关阅读:
    21天搞定聊天机器人之{命名实体识别}
    e到底是什么?
    An example of using Pandas for regression
    Time-Series Analysis
    Multiple Regression
    Regression Analysis Using Excel
    Correlation and Regression
    Hypothesis Testing
    Sampling and Estimation
    Common Probability Distributions
  • 原文地址:https://www.cnblogs.com/Hermioner/p/9661884.html
Copyright © 2011-2022 走看看