gpt4 book ai didi

java - FunctionalInterface Comparator 有 2 个抽象方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:23:57 24 4
gpt4 key购买 nike

学习 Java 8 Lambda 并想知道编译器如何知道 Comparator 中的哪个方法用于 lambda 表达式?好像不是SAM界面?它有 2 个抽象方法:

@FunctionalInterface
public interface Comparator<T> {
int compare(T o1, T o2);
boolean equals(Object obj);
}

最佳答案

equals() 不是抽象方法。此方法覆盖 Object.equals(Object),并且仅用于 Comparator 接口(interface)能够将 javadoc 附加到该方法,解释比较器应如何实现 equals().

参见 javadoc of FunctionalInterface :

If an interface declares an abstract method overriding one of the public methods of java.lang.Object, that also does not count toward the interface's abstract method count since any implementation of the interface will have an implementation from java.lang.Object or elsewhere.

关于java - FunctionalInterface Comparator 有 2 个抽象方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47786098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com