在Java 8中,引入@FunctionalInterface
注释是为了表示具有一个抽象方法作为功能接口的任何接口。其引入的一个原因是向用户(程序员)表明,lambda表达式可以在功能接口的上下文中使用。当比较器有两个抽象方法时,它如何成为一个功能接口?
Comparator
接口注有@FunctionalInterface
。但是,两种方法是抽象的。
int compare(T o1, T o2);
和
boolean equals(Object obj);
在FunctionalInterface
的文档中,清楚地提及作为
在概念上,功能接口都只有一个抽象方法。
是不是equals
方法在这里不被认为是抽象的?
“概念上”可能是这里的关键词,与“实际上”截然不同。 – gyre
'equals'从Object继承。 –