This question already has answers here:
FunctionalInterface Comparator has 2 abstract methods
(3个答案)
2年前关闭。
我想澄清一下我对
据我所知,我们可以在只有一个抽象方法的接口(interface)上添加@FunctionalInterface批注(尽管它可以具有多个默认和静态方法。
在Java 8中,
我想了解在功能接口(interface)中如何可能有两个以上的抽象方法,而仍然没有出现任何错误?帮助我清除对此的理解。
(3个答案)
2年前关闭。
我想澄清一下我对
@FunctionalInterface
的理解。据我所知,我们可以在只有一个抽象方法的接口(interface)上添加@FunctionalInterface批注(尽管它可以具有多个默认和静态方法。
在Java 8中,
Comparator<T>
接口(interface)已用@FunctionalInterface标记,因此可以在Lambda表达式中使用,但是当我打开定义时,可以看到那里有2个抽象类int compare(T o1, T o2);
和boolean equals(Object obj);
我想了解在功能接口(interface)中如何可能有两个以上的抽象方法,而仍然没有出现任何错误?帮助我清除对此的理解。
最佳答案
在@FunctionalInterface
批注的Java docs中回答了您的问题:
因此,Comparator接口(interface)中boolean equals(Object obj);
的存在不会增加接口(interface)中存在的抽象方法的数量,因此我们可以将@FunctionalInterface
应用于此接口(interface)。
09-25 19:30