如果需要使用单个抽象方法的接口实例,则可以使用lambda表达式。你写了,
仅仅因为接口碰巧具有单个抽象方法,所以不应将其视为功能接口。
这是完全正确的。具有单个抽象方法是接口的 结构 属性,该接口使它有资格使用lambda来实现。但是,接口 是有意义的 还是在 语义
上适合使用lambda实现则是另一回事。后者是
@FunctionalInterface注释的目的。当其存在时的界面上时,表示 意图
,该接口是用一个lambda来实现有用的。
值得注意的是,该
Comparable界面缺少
@FunctionalInterface注释。
尽管使用lambda作为
Comparable实现可能是荒谬的,但似乎没有任何理由创建一种机制来阻止这种情况的发生。这样做似乎不是错误的根源,这将是开发这种机制的一个很好的理由。相比之下,
@FunctionalInterface注释旨在引导程序员朝
正确的 方向发展,而不是禁止可能是错误的但似乎没有真正危害的事情。



