gpt4 book ai didi

java - 为什么要使用嵌套类来实现 Comparator?

转载 作者:搜寻专家 更新时间:2023-11-01 01:44:00 24 4
gpt4 key购买 nike

查看 String 的文档文件,我偶然看到了下面这段代码:

public static final Comparator<String> CASE_INSENSITIVE_ORDER
= new CaseInsensitiveComparator();

private static class CaseInsensitiveComparator
implements Comparator<String>, java.io.Serializable {
// use serialVersionUID from JDK 1.2.2 for interoperability
private static final long serialVersionUID = 8575799808933029326L;

public int compare(String s1, String s2) {
// ...
}
}

我的问题是,为什么我们不能直接执行 Comparator , 比如 Comparable ,并使用私有(private)方法而不是嵌套类?

还有一个旁注,为什么不 Comparator有一个带有类似于 compareTo 的单个参数的方法在 Comparable

最佳答案

因为 String 不是 比较器。当然,它们确实是 Comparable,但它们本身并不是“比较函数”1:让 String 实现 是没有意义的比较器.

另一方面,CaseInsensitiveComparator 一个特定的比较函数,只与字符串有关。因此,它被声明为 static 嵌套类。


1 参见 Comparator

关于java - 为什么要使用嵌套类来实现 Comparator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17539187/

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