gpt4 book ai didi

java - 在java中创建一个可以接收不同类型的类

转载 作者:行者123 更新时间:2023-11-29 05:22:19 25 4
gpt4 key购买 nike

我想实现这个类来接收不同类型的数组,比如 String、int、double 等:

public class BubbleSort<T extends Comparable<T>> {

private T [] A;
public BubbleSort(T [] A) {
this.A = A;
}

public void bubbleSort() {
for (int i = 0; i < this.A.length; i++) {
for (int j = 0; j < this.A.length - 1; j--) {
if (this.A[j].compareTo(this.A[j - 1]) < 0) {
T aux = this.A[j];
this.A[j] = this.A[j - 1];
this.A[j - 1] = aux;
}
}
}
}

但是当我像这样创建该类的对象时:

double A[] = { 3, 2, 4, 6, 7, 1, 2, 3 };    
BubbleSort bs = new BubbleSort(A);

我收到一条错误消息,告诉我 BubbleSort(double[]) 的构造函数未定义。我认为我在泛型类方面做错了,我需要一些帮助。

凹凸。

最佳答案

您需要参数化 BubbleSort 使用引用类型的数组,而不是原始类型(因为泛型只适用于引用类型):

Double[] A = { 3d, 2d, 4d, 6d, 7d, 1d, 2d, 3d };    // notice Double ref. type
BubbleSort<Double> bs = new BubbleSort<Double>(A); // notice <Double> type param.

另请注意,我已将 [] 附加到数组类型,即 Double。像您所做的那样将它附加到变量名也是有效的,但更常规的是将它附加到类型。

关于java - 在java中创建一个可以接收不同类型的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24175203/

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