gpt4 book ai didi

java - 为什么我不能使用生成器创建通用的 bubbleSort? ( java )

转载 作者:行者123 更新时间:2023-12-01 18:36:26 25 4
gpt4 key购买 nike

我一直在尝试学习排序类的泛型实现,但收到此错误:“无法从类型 Comparator 中对非静态方法compare(T, T) 进行静态引用”(第 14 行) .

为什么我会收到此消息?我还没有声明我的排序类是静态的。

我正在尝试创建一个排序类,只要它实现了 Comparator,它就可以用于任何类型的类。

public class GenericBSort<T extends Comparator<T>> {

public GenericBSort(T[] arr){
boolean needNextPass = true;
for (int k = 1; k < arr.length && needNextPass; k++)
{ // Array may be sorted and next pass not needed
needNextPass = false;
for (int i = 0; i < arr.length - k; i++){
if (T.compare(arr[i], arr[i + 1])>0){ // Swap list[i] with list[i + 1]
T temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;

needNextPass = true; // Next pass still needed
}
}
}



}

}

非常感谢!(我知道这是一个新手问题,但我真的无法弄清楚并且需要理解这一点:)

最佳答案

T代表一个类,所以在这一行

if(T.compare(arr[i], arr[i + 1])>0)

您正在执行静态方法调用。

您可能需要更改它

if(arr[i].compare(arr[i + 1])>0)

关于java - 为什么我不能使用生成器创建通用的 bubbleSort? ( java ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21805793/

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