Java 中函数式接口的规则有哪些?


一个函数 接口 是一类特殊的接口,其中正好包含一个抽象方法,其中 lambda 表达式参数和返回类型相匹配。它为 lambda 表达式和方法引用提供了目标类型

函数接口的规则

  • 函数接口必须恰好包含一个抽象方法
  • 函数接口包含任意数量默认方法,因为它们不是抽象的且已经由函数接口本身提供了实现。
  • 函数接口声明一个抽象方法来覆盖java.lang.Object 中的一个公共方法,这仍然被认为是函数接口。其原因是任何实现此接口的实现类都可以为该抽象方法提供实现,具体可通过超类 或由实现类本身来定义。

语法

@FunctionalInterface
interface <interface-name> {
 // only one abstract method
 // static or default methods
}

示例

import java.util.Date;

@FunctionalInterface
interface DateFunction {
   int process();
   static Date now() {
      return new Date();
   }
   default String formatDate(Date date) {
     return date.toString();
   }
   default int sum(int a, int b) {
      return a + b;
   }
}
public class LambdaFunctionalInterfaceTest {
   public static void main(String[] args) {
      DateFunction dateFunc = () -> 77; // lambda expression
      System.out.println(dateFunc.process());
   }
}

输出

77

更新时间:2020-07-14

2 千次以上浏览

开启您的职业生涯

完成课程以获得认证

立即开始
广告
© . All rights reserved.