除了使用Lambda表达式的不同实现之外,Functional接口的用例是什么?

时间:2019-07-11 06:55:57

标签: java functional-interface

我想知道除了使用lambda表达式的不同实现之外,功能接口的用例是什么?

以下是功能界面的基本示例:

/*Basic example for Functional interface with Lambda expression*/

public class Lambda_test {

    /*
     * Functional Interface annotation will not allow to declare more than one
     * abstract method which is obvious for the concept
     */

    @FunctionalInterface
    interface NameTest {

        // One abstract method
        abstract String MyName(String name);


    }

    public static void main(String[] args) {

        NameTest nametest = (name) -> "Ashwin " + name + "!";

        System.out.println("My name is " + nametest.MyName("Savaj"));

    }

}

1 个答案:

答案 0 :(得分:1)

根据Java规范https://docs.oracle.com/javase/8/docs/api/java/lang/FunctionalInterface.html

  

功能接口是只有一种抽象方法的接口   (除了对象的方法之外),因此代表单个   功能合同。

由于默认方法具有实现,因此它们不是抽象的。

@FunctionalInterface时:
除非以下情况,否则编译器将产生错误消息:

  1. 该类型是接口类型,而不是注释类型,枚举或 课。
  2. 带注释的类型满足功能要求 界面。