Java 8中使用了哪些功能接口?

Java 8中使用了哪些功能接口?,第1张

Java 8中使用了哪些功能接口

@FunctionalInterface
批注对于检查代码的编译时间很有用。除了之外
static
,你不能有多个方法
default
并且抽象方法会覆盖
Object
@FunctionalInterface
或任何其他用作功能接口的接口中的方法。

但是,你可以使用不带注释的lambda,也可以覆盖不带

@Override
注释的方法。

来自文档

功能接口只有一种抽象方法。由于默认方法具有实现,因此它们不是抽象的。如果接口声明的抽象方法覆盖了java.lang.Object的公共方法之一,则该方法也不计入接口的抽象方法计数,因为该接口的任何实现都将具有java.lang.Object或其他地方的实现。

这可用于在lambda表达式:

public interface Foo {  public void doSomething();}

此不能用于在lambda表达式:

public interface Foo {

  public void doSomething();  public void doSomethingElse();}

但这会产生编译错误:

@FunctionalInterfacepublic interface Foo {  public void doSomething();  public void doSomethingElse();}

无效的“ @FunctionalInterface”注释;Foo不是功能界面



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5021576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存