Kopieren Sie den Codecode wie folgt:
/**
* Ermitteln Sie den Parametertyp der Reflexionsmethode basierend auf dem Methodennamen (beachten Sie, wenn Sie die überladene Methode mit demselben Namen verwenden, ohne ihn zu berücksichtigen).
* @param obj-Klasseninstanz
* @param methodName Methodenname
* @zurückkehren
* @throws ClassNotFoundException
*/
öffentliche statische Klasse[] getMethodParamTypes(Object classInstance,
String (Methodenname) löst ClassNotFoundException{ aus
Class[] paramTypes = null;
Method[] methoden = classInstance.getClass().getMethods();//Alle Methoden
for (int i = 0; i< methoden.länge; i++) {
if(methodName.equals(methods[i].getName())){// Passen Sie den Namen der eingehenden Methode an
Class[] params = methoden[i].getParameterTypes();
paramTypes = neue Klasse[ params.length];
for (int j = 0; j < params.length; j++) {
paramTypes[j] = Class.forName(params[j].getName());
}
brechen;
}
}
return paramTypes;
}
// Holen Sie sich die Methode test (Sie können für die Testklasse schreiben, was Sie wollen, ich werde es hier nicht auflisten)
Methode m = Test.class.newInstance().getClass().getDeclaredMethod("Methodenname", getMethodParamTypes(Test.class.newInstance(),"Methodenname"));