对我而言,我调用的函数已经返回了我必须将其转换为的类型。为什么我必须这样做?
T[]leftPart=(T[]) sort(copyOfRange(a,0,middle));
我创建的copyOfRange方法应该返回与参数a。
相同的类型以下是代码:
static public <T extends Comparable<T>> Object[] sort(T[] a){
int middle=a.length/2;
T[]leftPart=(T[]) sort(copyOfRange(a,0,middle));
}
static public<T> T[] copyOfRange(T[] original,int from,int to){
int size=to-from;
T[] retObject=(T[])new Object[size];
for(int i=0;i<size;i++) retObject[i]=original[from+i];
return retObject;
}
答案 0 :(得分:3)
copyOfRange
返回T[]
,但您将其放入sort()
,sort()
返回了Object[]
。