Böyle olarak şu sınıfını tanımlamak istiyorum:Bu Java'da Generics ile bir sınırlama mı?
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); }
}
Bu (cannot resolve symbol T
) derlenmeyecektir. Aşağıdaki sınıf beyanı değiştirin:
public class CollectionAttribute<E extends Collection<?>>
Sonra koleksiyonun parametrized türünü başvuramaz.
Java'da bir şey eksik mi ya da jeneriklerle bir sınırlamaya ulaştım mı?
: -o Herhangi bir kısa açıklama neden? – OscarRyz
@Support: Aksi takdirde, "T" tipi yoktur. – SLaks
Bu gereksiz değil mi? Şimdi bu nesneyi oluşturduğumda iki kez T'yi belirtmem gerekiyor :( –