我想寫一個通用的容器,我必須使用數組。我得到以下錯誤:使用泛型,數組和比較時出錯()
Exception in thread "main" java.lang.ClassCastException:
[Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;
這裏是我的代碼的一部分:
class MinFo<T extends Comparable> {
private final T[] array;
MinFo(int size){
array = (T[]) new Object[size];
}
T get(){
if(this instanceof Comparable){
int tmpPos = getNotNull();
T tmp = array[tmpPos];
int pos;
for(pos = tmpPos ; pos < array.length; getNotNull()){
if(tmp.compareTo(array[pos]) > 0)
tmp = array[pos];
}
這使我刪除從類聲明「擴展可比」。現在我有一個不同的錯誤:
error: cannot find symbol
if(tmp.compareTo(array[pos]) > 0)
^
symbol: method compareTo(T)
location: variable tmp of type T
where T is a type-variable:
T extends Object declared in class MinFo
在我看來,我不能贏。在此先感謝您的幫助。
讓我們看看你的主錯誤發生的位置 – surfealokesea
你確定你不是指'>',或者最壞的情況是'>'? –
fge
@fge你是對的,我有'>'。 –
cete3