Sobes.tech
Junior — Middle

¿Se puede llamar a un método privado de una clase desde fuera de su definición?

sobes.tech AI

Respuesta de la IA

En Java, no se puede llamar directamente a un método privado de una clase desde fuera de su definición, ya que el modificador private limita el acceso solo dentro de la misma clase.

Sin embargo, con la ayuda de la reflexión, es posible acceder y llamar a métodos privados a pesar de las restricciones. Por ejemplo:

import java.lang.reflect.Method;

class MyClass {
    private void secret() {
        System.out.println("Método privado llamado");
    }
}

public class Test {
    public static void main(String[] args) throws Exception {
        MyClass obj = new MyClass();
        Method method = MyClass.class.getDeclaredMethod("secret");
        method.setAccessible(true); // eliminamos la restricción de acceso
        method.invoke(obj); // llamada al método privado
    }
}

De esta manera, la llamada normal no es posible, pero la reflexión permite sortear esta restricción.