我正在將List接口實現爲將數據存儲在<T>
類型數組中的類。這會產生以Collection爲參數的方法的問題,因爲Collection將對象存儲爲Object
。如何將Object
轉換爲T
?簡單的鑄造不起作用。Casting Objects to <T> -type
class MyCollection<T> implements List<T>{
T[] tab;
MyCollection() {
this.tab = (T[])new Object[10];
}
public boolean addAll(Collection c){
for(Object o : c){
o = (T)o;
for(int i = 0; i < tab.length; i++){
tab[i] = o;
}
}
}
}
我想:
public boolean addAll(Collection<? extends T> c)
但它失敗:
public boolean retainAll(Collection<?> c)
因爲我不能改變集合類型在這裏:/
public boolean retainAll(Collection<?> c){
boolean result = false;
for(T t : c){
}
return result;
}
你是如何實現'retainAll(Coll ...)'? – 2010-11-08 04:24:48
編輯與實施 – mastodon 2010-11-08 04:33:32