gpt4 book ai didi

java - 了解比较器的用法

转载 作者:行者123 更新时间:2023-12-02 02:49:42 25 4
gpt4 key购买 nike

查看一个简单的比较器使用示例:

Comparator<Developer> byName = new Comparator<Developer>() {
@Override
public int compare(Developer o1, Developer o2) {
return o1.getName().compareTo(o2.getName());
}

我无法理解这个方法声明,我以前从未见过这样的事情。

此外,我还尝试做其他事情:我创建了一个具有实现比较器的内部类的类:

class Test{
class A implements Comparator<Integer> {
@Override
public int compare(int a, int b) {
// Do something
}
}


class B implements Comparator<Integer> {
@Override
public int compare(int a, int b) {
return a > b ? 1 :A.compare(a, b);
}
}
}

A.compare(a,b) 无法编译。它要求我将 A 设为静态并进行比较,但随后我不会重写比较器类的比较方法。

另外,说我想在另一个类中使用方法A

class C {
private int foo(){
Test.A()
}
}

它也不起作用我该如何正确地做到这一点?有什么建议吗?

最佳答案

当您使用Comparator<Something>时,那么您正在使用参数化类型(在本例中: Something )。

compare的方法签名需要匹配此类型。

所以,尝试一下:

public int compare(Integer a, Integer b)

关于java - 了解比较器的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44043601/

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