gpt4 book ai didi

java - 找不到将排序方法转换为使用泛型的错误

转载 作者:行者123 更新时间:2023-11-29 03:28:15 25 4
gpt4 key购买 nike

我有一个练习要解决,但我无法理解它。所以问题是:下面的程序按升序打印一系列字符串。请注意,sort 仅对字符串数组进行排序。重写它,使其对类型 T 的对象进行排序,其中 T 作为通用类型名称在排序头中引入,T 实现 Comparable。更改应仅限于修改排序的标题和正文。所以我给出的代码是:

class SortNames {

static void sort(String[] s) {
for (int i = 0; i<s.length; i++) {
for (int j = i+1; j < s.length; j++) {
if (s[i].compareTo(s[j])>0) {
String t;
t = s[i]; s[i] = s[j]; s[j] = t;
}
}
}
}

public static void main(String[] args) {
String[] names = {"Pete","Jill","May","Anne","Tim"};
sort(names);
for (String s:names){
System.out.println(s);
}
}

所以我做的是:

class TestSort{

static void sort(T[] s) {
for (int i = 0; i<s.length; i++) {
for (int j = i+1; j < s.length; j++) {
if (s[i].compareTo(s[j])>0) {
Object t;
t = s[i]; s[i] = s[j]; s[j] = t;
}
}
}
}

public static void main(String[] args) {
int[] numbers = {3,6,2,7,9,1,8};
sort(numbers);
for (int a:numbers){
System.out.println(a);
}
}

现在当我编译我的代码时,我得到:

TestSort.java:3: error: cannot find symbol
static void sort(T[] s) {
^
symbol: class T
location: class TestSort
1 error

怎么了? :( 谁能给我推荐一些好的阅读资源?我明天要考试 :( 提前致谢!

最佳答案

您需要在sort 方法上定义通用变量T 以使其通用。 T 作为数据类型仅指泛型类型参数。

static <T extends Comparable<T>> void sort(T[] s) {

关于java - 找不到将排序方法转换为使用泛型的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846501/

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