我在Java中的泛型類生成鑄錯誤:如何避免可比接口
public class PriorityList<T extends Number> implements Comparable<T> {
T[] array = (T[]) new Object[10];
而且我有一個錯誤
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Number;
Erorr是這個鑄造使(T [] )new Object [10]。
我需要比較方法,因爲我需要數組元素必須排序。所以我不能申報這樣的類
public class PriorityList<T extends Number>
其他選項至少有一些意義是由我自己的鏈表,以保持T值。但是是另一種解決這個鑄造問題的方法
(T [])new Object [10];
?
PS 收集frobiden使用。
@RonDahlgren說到這一點,我有一本舊的Java書(Java 1.1),它說你應該放棄不必要的轉換並且只投射一次是因爲存儲在一個參考文獻中,並且獲取參考比鑄造花費的時間少。 – gparyani 2013-04-24 18:28:28
數組,泛型和類型安全:您只能選擇兩個。 – 2013-04-24 18:41:36
@gparyani好點。根據他的收藏的使用模式,保留已經鑄造的頭部參考可能是有意義的 – 2013-04-24 20:24:57