Sto riscontrando un problema durante l'inizializzazione di una classe con parametro di tipo. Sembra essere una lacuna dell'inferenza di tipo di Java e vorrei sapere se c'è un modo per aggirare questo o un modo migliore per raggiungere questo obiettivo.Java - Classe di inizializzazione del problema con i parametri del tipo
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);
}
}
errore di compilazione è in BusinessLogic::someLogic()
:
Il costruttore servizio < ChildModel, ArrayList < ChildModel >> (Class < ChildModel>, classe < ArrayList>) non è definito
Compiled to Java 7.
Ate intendevi avere campi 'Class' o campi di qualunque tipo' T' e 'E' sono? –