Java 8中“功能接口”的精确定义
最近,我开始探索Java 8,但我不太了解Java的lambda表达式实现所必需的“功能接口”的概念。Java中有关于lambda函数的相当全面的指南,但是我陷入了为功能接口的概念定义的章节中。定义如下: 更准确地说,功能接口定义为具有一种抽象方法的任何接口。 然后他继续进行示例,其中一个是Comparator接口: public interface Comparator<T> { int compare(T o1, T o2); boolean equals(Object obj); } 我能够测试是否可以使用lambda函数代替Comparator参数,并且它可以工作(即Collections.sort(list, (a, b) -> a-b))。 但是在Comparator界面中,compare和equals方法都是抽象的,这意味着它具有两个抽象方法。那么,如果定义要求一个接口仅具有一个抽象方法,那么这将如何工作?我在这里想念什么?