Ciao a tutti :) Sto provando a scegliere il costruttore giusto in una classe. Ecco il codice:Controllo al runtime se una classe ha un costruttore specifico che sta usando i generici
Constructor[] constructors = targetClass.getConstructors();
Constructor goodConstructor = null;
for (Constructor constructor : constructors) {
Class[] parameterTypes = constructor.getParameterTypes();
if (parameterTypes.length = 1 && parameterTypes[0].equals(Map.class)) {//here
goodConstructor = constructor;
}
}
voglio cambiare Map.class
-Map<String, String>.class
. Ricordo vagamente che i generici sono solo per la compilazione, quindi questo è il motivo per cui il compilatore si lamenta. Come posso verificare in runtime che la classe abbia il costruttore giusto?
migliori saluti
Rimosso la mia risposta; Dovrei stare più attento prima di rispondere con la risposta "generics use type erasure"! Direi che se stai facendo questo, però, c'è sicuramente qualcosa di sbagliato nel tuo design! :) – James