Jeg har følgende super klasse:
import java.util.List;
public class SuperClass {
List<?> storage;
}
Jeg vil gerne kunne extende min SuperClass, kunne initialisere storage som en subklasse af List med en type som er en subklasse af Object, og adde en subklasse af Object til den. Derfor har jeg følgende test klasser.
class SubClass1 extends SuperClass {
public SubClass1() {
storage = new ArrayList<TestClass1>();
storage.add(new TestClass1());
}
}
class SubClass2 extends SuperClass {
public SubClass2() {
storage = new ArrayList<TestClass2>();
storage.add(new TestClass2());
}
}
Men i add linjen får jeg følgende fejl:
The method add(capture#2-of ?) in the type List<capture#2-of ?> is not applicable for the arguments
(TestClass1)
Jeg har kigget på flere sider der handler om Generics, men det går lidt hen over mit hoved, og jeg kan ikke se hvad jeg skulle gøre galt.
Er det i det hele taget muligt at gøre det jeg vil, altså at lave en super klasse med en List der kan indeholde alle subklasser af Object, og så specificere i de klasser der extender min super klasse, hvad den liste skal indeholde af objekter?
Indlæg senest redigeret d. 01.04.2009 00:43 af Bruger #12726