java‘形式泛型类型‘强制转换

2024-12-21 23:04:09
推荐回答(2个)
回答1:

E[] firstHalf = (E[]) new Object[list.length / 2];
你这里E编译器只能认定他是Comparable的类型,而你把一个Object直接转肯定出错。Object没实现Comparable接口。而且我建议你别这么用,这个时候你已经知道泛型是Comparable类型了为什么还要用泛型。
而且其实你这个方法系统本身就已经存在了:
public static > void sort(List list) {
Object[] a = list.toArray();
Arrays.sort(a);
ListIterator i = list.listIterator();
for (int j=0; j i.next();
i.set((T)a[j]);
}
}
这是Collections类源代码,你看下,很简洁,很值得参考的哦!

回答2:

for(Object element:str)
这一句中的element不能被转换为String