函数式接口与具有单一方法(如 Runnable)的接口

Kar*_*nna -1 java java-8 functional-interface

在浏览功能接口时,我无法理解它们与使用单一方法的其他接口有何不同,例如 Runnable。

我们可以在尝试使用其他 Functional 接口时使用 Runnable。在 Java 8 之前,我们已经可以为单个功能创建接口和匿名对象。

例如:

@FunctionalInterface
public interface ITrade {
  public boolean check(Trade t);
}
Run Code Online (Sandbox Code Playgroud)

这与以下有何不同:

public interface ITrade {
  public boolean check(Trade t);
}
Run Code Online (Sandbox Code Playgroud)

luk*_*302 5

没有区别,状态文档FunctionalInterface

用于指示接口类型声明旨在成为功能接口的信息性注释类型[强调添加]

但是,无论接口声明中是否存在 FunctionalInterface 注释,编译器都会将满足函数式接口定义的任何接口视为函数式接口。

所以注释只是为了表明开发人员打算将接口用作功能接口。