在Java 8中,引入@FunctionalInterface
註釋是爲了表示具有一個抽象方法作爲功能接口的任何接口。其引入的一個原因是向用戶(程序員)表明,lambda表達式可以在功能接口的上下文中使用。當比較器有兩個抽象方法時,它如何成爲一個功能接口?
Comparator
接口注有@FunctionalInterface
。但是,兩種方法是抽象的。
int compare(T o1, T o2);
和
boolean equals(Object obj);
在FunctionalInterface
的文檔中,清楚地提及作爲
在概念上,功能接口都只有一個抽象方法。
是不是equals
方法在這裏不被認爲是抽象的?
「概念上」可能是這裏的關鍵詞,與「實際上」截然不同。 – gyre
'equals'從Object繼承。 –