Je rencontre un problème lors de l'initialisation d'une classe avec un paramètre de type. Cela semble être une lacune de l'inférence de type Java et j'aimerais savoir s'il existe un moyen de contourner cela ou un meilleur moyen d'y parvenir.Java - Classe d'initialisation de problème avec les paramètres de type
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);
}
}
erreur de compilation est BusinessLogic::someLogic()
:
Le constructeur service < ChildModel, ArrayList < ChildModel >> (classe < ChildModel>, classe < ArrayList>) est définie
Compilé en Java 7.
Vous aviez l'intention d'avoir des champs 'Class' ou des champs de tout type' T' et 'E'? –