Junior — Middle
Peut-on appeler une méthode privée d'une classe depuis l'extérieur de sa définition?
sobes.tech IA
Réponse de l'IA
En Java, il n'est pas possible d'appeler directement une méthode privée d'une classe depuis l'extérieur de sa définition, car le modificateur private limite l'accès uniquement à l'intérieur de la classe.
Cependant, avec l'aide de la réflexion, il est possible d'accéder et d'appeler des méthodes privées malgré ces restrictions. Par exemple :
import java.lang.reflect.Method;
class MyClass {
private void secret() {
System.out.println("Méthode privée appelée");
}
}
public class Test {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
Method method = MyClass.class.getDeclaredMethod("secret");
method.setAccessible(true); // supprimer la restriction d'accès
method.invoke(obj); // appel de la méthode privée
}
}
Ainsi, l'appel normal est impossible, mais la réflexion permet de contourner cette restriction.