Witaj wszystkich :) Próbuję wybrać właściwy konstruktor w klasie. Oto kod:Sprawdzanie w środowisku wykonawczym, jeśli klasa ma określonego konstruktora, który używa generics
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;
}
}
Chcę przejść z Map.class
do Map<String, String>.class
. Niejasno pamiętam, że generics są przeznaczone tylko do kompilacji, dlatego kompilator narzeka. Jak mogę sprawdzić w czasie wykonywania, czy klasa ma odpowiedni konstruktor?
poważaniem
Usunięto moją odpowiedź; Powinienem być bardziej ostrożny, zanim odpowiem na pytanie "odpowiedź generics type erasure"! Powiedziałbym, że jeśli to robisz, prawie na pewno jest coś nie tak z twoim projektem! :) – James