我想知道除了使用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"));

    }

}

最佳答案

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


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


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

如果是@FunctionalInterface:
除非出现以下情况,否则编译器将产生错误消息:


该类型是接口类型,而不是注释类型,枚举或
类。
带注释的类型满足功能要求
接口。

关于java - 除了使用Lambda表达式的不同实现之外,Functional接口(interface)的用例是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56983313/

10-11 22:09
查看更多