Java 为什么我必须转换返回值?

Java 为什么我必须转换返回值?,java,generics,casting,Java,Generics,Casting,对我来说,我调用的函数已经返回了我必须强制转换的类型。我为什么要这么做 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[

对我来说,我调用的函数已经返回了我必须强制转换的类型。我为什么要这么做

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;
}
静态公共对象[]排序(T[]a){
int middle=a.length/2;
T[]leftPart=(T[])排序(copyOfRange(a,0,middle));
}
静态公共T[]copyOfRange(T[]原始,int-from,int-to){
int size=to-from;
T[]retObject=(T[])新对象[size];

对于(int i=0;i
copyOfRange
返回
T[]
,但您将其放在
sort()
中,并
sort()
返回一个
对象[]
copyOfRange
返回
T[]
,但您将其放在
sort()
中并
sort()返回一个
对象[]

copyOfRange
返回了
T[]
,但是你把它放在
sort()
sort()
返回了一个
对象[]
copyOfRange
返回了
T[]
,但是你把它放在
sort()
sort()返回了一个
对象[]

sort
被声明为返回
Object[]
,而不是
T[]
。我将标题缩减为核心问题,并将其余部分移到问题陈述中。尽量保持问题标题简洁。
sort
被声明为返回
Object[]
,而不是
T[]
。我将标题缩减为核心问题,并将其余部分移至问题陈述。尽量保持问题标题简洁。
sort
声明为返回
Object[]
,而不是
T[]
。我将标题缩减为核心问题,并将其余标题移至问题陈述。请尽量保持问题标题简洁。
排序
声明为返回
对象[]
,而不是
T[]
。我将标题缩减为核心问题,并将其余标题移至问题陈述。请尽量保持问题标题简洁。