Sobes.tech
Junior — Middle

Kan een privé-methode van een klasse van buiten de definitie worden aangeroepen?

sobes.tech AI

Antwoord van AI

In Java kan een private methode van een klasse niet rechtstreeks vanaf buiten de definitie worden aangeroepen, omdat de modifier private de toegang alleen binnen de klasse beperkt.

Echter, met behulp van reflectie is het mogelijk om toegang te krijgen tot en private methoden aan te roepen, ondanks deze beperkingen. Bijvoorbeeld:

import java.lang.reflect.Method;

class MyClass {
    private void secret() {
        System.out.println("Privé methode aangeroepen");
    }
}

public class Test {
    public static void main(String[] args) throws Exception {
        MyClass obj = new MyClass();
        Method method = MyClass.class.getDeclaredMethod("secret");
        method.setAccessible(true); // verwijder toegangsbescherming
        method.invoke(obj); // roep de privé methode aan
    }
}

Op deze manier is de normale aanroep niet mogelijk, maar reflectie maakt het mogelijk om deze beperking te omzeilen.