对于我的项目,我试图将给定的Collection转换为数组
我目前有这个:
public class InsertionSorter< T extends Comparable<T>> {
private T[] array;
@SuppressWarnings("unchecked")
public InsertionSorter(){
array = (T[]) new Object[0];
}
}
这给了我以下错误:
java.lang.ClassCastException: java.base/[Ljava.lang.Object; cannot be cast to java.base/[Ljava.lang.Comparable;
有解决方法吗?
在我将其转换为数组之后,我想对其进行排序并将其作为集合返回。我这样做如下:
collection.clear();
collection.addAll(Arrays.asList(sort(array)));
return collection;
sort方法是一种对数组进行排序并返回类型为T的数组的方法。
答案 0 :(得分:0)
您的typedefinition T
声称实例至少为Comparable
,但之后您尝试分配Object
的数组,其中不是 {{ 1}},从而产生Comparable
。