Java 8中“功能接口”的精确定义
2022-08-31 12:54:37
最近我开始探索Java 8,我不能完全理解“功能接口”的概念,这对Java实现lambda表达式至关重要。Java中有一个非常全面的lambda函数指南,但我被困在了定义函数接口概念的章节上。定义如下:
更准确地说,功能接口被定义为任何只有一个抽象方法的接口。
然后,他继续举一些例子,其中一个是接口:Comparator
public interface Comparator<T> { int compare(T o1, T o2); boolean equals(Object obj); }
我能够测试我可以使用lambda函数代替比较器参数,并且它有效(即)。Collections.sort(list, (a, b) -> a-b)
但是在比较器接口中,方法和方法都是抽象的,这意味着它有两个抽象的方法。那么,如果定义要求接口只有一个抽象方法,这怎么能工作呢?我在这里错过了什么?compare
equals