Ich habe ein Problem beim Initialisieren einer Klasse mit Typparameter. Es scheint ein Mangel an Java-Typ-Schlussfolgerung zu sein und ich würde gerne wissen, ob es einen Weg gibt, um dies zu erreichen oder einen besseren Weg, dies zu erreichen.Java - initialisierende Klasse mit Typparametern ausgeben
public class ParentModel {}
public class ChildModel extends ParentModel {}
public class Service<E extends ParentModel, T extends Collection<E>> {
private Class<T> classOfT;
private Class<E> classOfE;
public Service(Class<E> classOfE, Class<T> classOfT) {
this.classOfE = classOfE;
this.classOfT = classOfT;
}
}
public class BusinessLogic {
public void someLogic() {
Service<ChildModel, ArrayList<ChildModel>> service = new
Service<ChildModel, ArrayList<ChildModel>>(ChildModel.class, ArrayList.class);
}
}
Kompilierzeitfehler ist in BusinessLogic::someLogic()
:
Der Konstruktor Dienst < ChildModel, Arraylist < ChildModel >> (Klasse < ChildModel> Klasse < Arraylist>) nicht definiert ist
Kompiliert mit Java 7.
Sie beabsichtigen, 'Klassen'-Felder oder -Felder von welchem Typ auch immer' T' und 'E' zu haben? –