Java 8で、@FunctionalInterface
アノテーションは、関数インタフェースとして厳密に1つの抽象メソッドを持つインタフェースを示すために導入されています。その導入の理由の1つは、ラムダ式が機能的インタフェースのコンテキストで使用できることをユーザ(プログラマ)に示すことです。2つの抽象メソッドがある場合、コンパレータはどのように機能インターフェイスになりますか?
Comparator
インターフェイスには、@FunctionalInterface
という注釈が付けられています。しかし、2つの方法は抽象的なものです。 FunctionalInterface
のドキュメントで
int compare(T o1, T o2);
と
boolean equals(Object obj);
、それが明確
概念的には、機能インタフェースは、正確に1つの抽象メソッドを有するように記載されています。
equals
メソッドはここでは抽象的ではありませんか?
「概念的に」はおそらくここのキーワードであり、「実際に」とは区別されます。 – gyre
'equals'は' Object'から継承されます。 –