我有一個LinkedList<T>
其中包含Object toArray()
方法:的Java /泛型/ ClassCastException異常
public Object[] toArray()
{
Object[] array = new Object[size];
int c=0;
for(Node<T> i = first;i != null;i=i.next)
{
array[c++] = i.data;
}
return array;
}
我想我的排序與LinkedList的泛型方法:<T extends Comparable> void sort (List<T> list)
。要排序列表,我必須代表他們作爲數組中此方法:
T[] elements = (T[])list.toArray();`
然而,我在這行獲得ClassCastException
,我不知道爲什麼。由於該方法的泛型類型等同於返回數組中的元素運行時類型,因此這種轉換不是謊言!
你能提供更多的代碼嗎?它很難說這樣的東西 – Infested
'List#toArray()'返回'Object []',而不是'T []'(數組保持它的元素的類型,在這種情況下它是'Object')。要對列表進行排序,請使用'Collections.sort(list)'或在'toArray(T [] destination)中提供'T []' –
爲什麼不直接對列表進行排序而不使用java.util將其更改爲數組。作品集:'Collections.sort(list)'? –