我想定義下面的類這樣:這是Java中泛型的限制嗎?
public class CollectionAttribute<E extends Collection<T>> {
private String name;
private E value;
public CollectionAttribute(String name, E value) {
this.name = name;
this.value = value;
}
public E getValue() { return value; }
public void addValue(T value) { value.add(T); }
}
這不會編譯(cannot resolve symbol T
)。如果我用以下代碼替換類聲明:
public class CollectionAttribute<E extends Collection<?>>
然後我無法引用集合的參數化類型。
我是否錯過了某些東西,或者我在Java中使用泛型時遇到了限制?
:-o任何簡短解釋爲什麼? – OscarRyz 2010-06-10 17:12:17
@支持:否則,沒有'T'類型。 – SLaks 2010-06-10 17:12:50
這不是多餘的嗎?現在,當我創建這個對象時,我必須指定我的T兩次:( – 2010-06-10 17:16:21