Java Reflection aufrufender Konstruktor mit primitiven Typen

Ich habe eine Methode in meinem Testframework, die abhängig von den übergebenen Parametern eine Instanz einer Klasse erstellt:

public void test(Object... constructorArgs) throws Exception {
    Constructor<T> con;
    if (constructorArgs.length > 0) {
        Class<?>[] parameterTypes = new Class<?>[constructorArgs.length];
        for (int i = 0; i < constructorArgs.length; i++) {
            parameterTypes[i] = constructorArgs[i].getClass();  
        }
        con = clazz.getConstructor(parameterTypes);
    } else {
        con = clazz.getConstructor();
    }
}

Das Problem ist, dass dies nicht funktioniert, wenn der Konstruktor über folgende primitive Typen verfügt:

public Range(String name, int lowerBound, int upperBound) { ... }

.test("a", 1, 3);

Ergebnisse in:

java.lang.NoSuchMethodException: Range.<init>(java.lang.String, java.lang.Integer, java.lang.Integer)

Die primitiven Ints werden automatisch in Objektversionen eingepackt, aber wie bekomme ich sie zurück, um den Konstruktor aufzurufen?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage