Copiez le code comme suit :
/**
* Obtenez le type de paramètre de la méthode de réflexion en fonction du nom de la méthode (à noter lorsque vous utilisez la méthode surchargée du même nom sans la prendre en compte)
* Instance de classe @param obj
* @param methodName nom de la méthode
* @retour
* @throws ClassNotFoundException
*/
public static Class[] getMethodParamTypes(Object classInstance,
String methodName) lance ClassNotFoundException {
Classe[] paramTypes = null ;
Method[] méthodes = classInstance.getClass().getMethods();//Toutes les méthodes
pour (int i = 0; i< méthodes.longueur; i++) {
if(methodName.equals(methods[i].getName())){//Match le nom de la méthode entrante
Class[] params = méthodes[i].getParameterTypes();
paramTypes = nouvelle classe[ params.length];
pour (int j = 0; j < params.length; j++) {
paramTypes[j] = Class.forName(params[j].getName());
}
casser;
}
}
renvoie les paramètresTypes ;
}
//Récupérez la méthode test (vous pouvez écrire ce que vous voulez pour la classe Test, je ne la listerai pas ici)
Méthode m = Test.class.newInstance().getClass().getDeclaredMethod("Nom de la méthode", getMethodParamTypes(Test.class.newInstance(),"Nom de la méthode"));