Java 类型不适用于参数(泛型问题)
为什么我不能在代码中调用泛型方法?编译器说该类型不适用。这是我用Java编写的代码。我是Java新手。如果这是一个明显的问题,我道歉。请帮忙Java 类型不适用于参数(泛型问题),java,generics,Java,Generics,为什么我不能在代码中调用泛型方法?编译器说该类型不适用。这是我用Java编写的代码。我是Java新手。如果这是一个明显的问题,我道歉。请帮忙 package adnan1; import java.util.Scanner; public class myclass{ public static void main(String args[]) { int length; myclass my = new myclass(); Scanne
package adnan1;
import java.util.Scanner;
public class myclass{
public static void main(String args[]) {
int length;
myclass my = new myclass();
Scanner input = new Scanner(System.in);
System.out.println("ENTER LENGTH OF ARRAY");
length = input.nextInt();
int[] data1 = new int[length];
int[] data2 = new int[length];
int[] data3 = new int[length];
System.out.printf("ENTER %d ELEMENTS FOR 1ST ARRAY\n",length);
for(int i=0;i<length;i++) {
data1[i] = input.nextInt();
}
System.out.printf("ENTER %d ELEMENTS FOR 2ND ARRAY\n",length);
for(int j=0;j<length;j++) {
data2[j] = input.nextInt();
}
System.out.printf("ENTER %d ELEMENTS FOR 3RD ARRAY\n",length);
for(int k=0;k<length;k++) {
data3[k] = input.nextInt();
}
my.bubblesort(data1, length); //ERROR TYPE t[] not applicable for
//argument int[].
my.selectionsort(data2, length); //ERROR TYPE t[] not applicable for
//argument int[].
my.insertionsort(data3, length); //ERROR TYPE t[] not applicable for
//argument int[].
input.close();
}
public static <t extends Comparable<t>> void bubblesort(t[] data,int length) {
t temp = null;
System.out.println("bubble sort");
for(int i = 0 ; i<length-1 ; i++) {
for(int j=0; j<length-1 ; j++) {
if(data[j].compareTo(data[j+1])>0) {
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
for(t z : data) {
System.out.println(z);
}
}
public static<t extends Comparable<t>> void selectionsort(t[] data , int length) {
int min;
t temp = null;
System.out.println("selection sort");
for(int i=0;i<length;i++) {
min = i;
for(int j=i+1;j<length;j++) {
if(data[j].compareTo(data[min]) > 0) {
min=j;
}
}
temp = data[i];
data[i] = data[min];
data[min] = temp;
}
for(t z : data) {
System.out.println(z);
}
}
public static <t extends Comparable <t>> void insertionsort(t[] data , int length) {
int hole;
t value;
System.out.println("insertion sort");
for(int i=1;i<length;i++) {
hole = i-1;
value = data[i];
while(hole > -1 && data[hole].compareTo(value) > 0) {
data[hole+1] = data[hole];
hole--;
}
data[hole+1] = value;
}
for(t z : data) {
System.out.println(z);
}
}
}
packageadnan1;
导入java.util.Scanner;
公共类myclass{
公共静态void main(字符串参数[]){
整数长度;
myclass my=新的myclass();
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入数组长度”);
length=input.nextInt();
int[]data1=新的int[length];
int[]data2=新的int[length];
int[]data3=新的int[length];
System.out.printf(“为第一个数组输入%d个元素,\n”,长度);
对于(int i=0;iint
实际上不是对象类型,因为泛型只能应用于对象类型,所以存在冲突。您需要使用int[]data1=new int[length]
而不是使用Integer[]data1=new Integer[length]
(和其他数据数组)这将消除你的即时编译错误——而且,请以后不要对我们大喊大叫;)谢谢你,先生。愿上帝给你世界上所有的幸福。