3 回答
TA贡献1780条经验 获得超1个赞
@FunctionalInterface
static
, default
Object
@FunctionalInterface
@Override
一个功能接口正好有一个抽象方法。因为默认方法有实现,所以它们不是抽象的。如果接口声明了一个覆盖java.lang.Object的公共方法的抽象方法,那也不算在接口的抽象方法计数中,因为接口的任何实现都将有来自java.lang.Object或其他地方的实现。
public interface Foo { public void doSomething();}
public interface Foo { public void doSomething(); public void doSomethingElse();}
@FunctionalInterfacepublic interface Foo { public void doSomething(); public void doSomethingElse();}
无效的@FunctionalInterface注释;foo不是函数接口
TA贡献1862条经验 获得超6个赞
一种信息丰富的注释类型,用于指示接口类型声明的意图是 功能接口由Java语言规范定义。
注意,函数接口的实例可以使用lambda表达式、方法引用或构造函数引用创建。
…
除了通过声明和实例化类来创建接口实例的通常过程(§15.9)之外,还可以使用方法引用表达式和lambda表达式创建函数接口实例(§15.13,§15.27)。
添加回答
举报