Malgré la restriction de Java sur l'accès aux méthodes privées via la réflexion, il existe une solution pour surmonter cette limitation. Pour invoquer une méthode privée via réflexion, on peut utiliser l'approche suivante :
Tout d'abord, obtenez la méthode privée en utilisant getDeclaredMethod(String methodName) au lieu de getMethod(String methodName). Cette méthode permet d'accéder aux méthodes publiques et privées déclarées dans la classe actuelle.
Ensuite, pour contourner la restriction d'accès par défaut sur les méthodes privées, utilisez la méthode setAccessible(boolean accessible) pour accorder l'accessibilité. En définissant accessible sur true, vous remplacez les paramètres de protection et autorisez l'invocation de la méthode privée.
Enfin, invoquez la méthode privée en utilisant Invoke(Object object, Object... args) avec l'objet souhaité et tout élément requis arguments.
Voici une version mise à jour du code fourni dans la question d'origine :
Method method = object.getClass().getDeclaredMethod(methodName); method.setAccessible(true); Object r = method.invoke(object);
Avertissements :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!