Sobes.tech
Junior — Middle

Kann man eine private Methode einer Klasse von außerhalb ihrer Definition aufrufen?

sobes.tech KI

Antwort von AI

In Java kann eine private Methode einer Klasse von außerhalb ihrer Definition nicht direkt aufgerufen werden, da der Modifikator private den Zugriff nur innerhalb der Klasse einschränkt.

Mit Hilfe der Reflexion ist es jedoch möglich, auf private Methoden zuzugreifen und sie aufzurufen, trotz dieser Einschränkungen. Zum Beispiel:

import java.lang.reflect.Method;

class MyClass {
    private void secret() {
        System.out.println("Private Methode aufgerufen");
    }
}

public class Test {
    public static void main(String[] args) throws Exception {
        MyClass obj = new MyClass();
        Method method = MyClass.class.getDeclaredMethod("secret");
        method.setAccessible(true); // Zugriffsrestriktion aufheben
        method.invoke(obj); // private Methode aufrufen
    }
}

Auf diese Weise ist der normale Aufruf nicht möglich, aber Reflexion ermöglicht es, diese Einschränkung zu umgehen.