Junior — Middle
Може ли да се позове приватна метода класе изван његове дефиниције?
sobes.tech АИ
Одговор од АИ
U Javi, nije moguće direktno pozvati privatni metod klase izvan njegove definicije, jer modifikator private ograničava pristup samo unutar same klase.
Međutim, pomoću refleksije, moguće je pristupiti i pozvati privatne metode uprkos tim ograničenjima. Na primer:
import java.lang.reflect.Method;
class MyClass {
private void secret() {
System.out.println("Privatni metod pozvan");
}
}
public class Test {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
Method method = MyClass.class.getDeclaredMethod("secret");
method.setAccessible(true); // uklanja ograničenje pristupa
method.invoke(obj); // poziva privatni metod
}
}
Na ovaj način, običan poziv nije moguć, ali refleksija omogućava zaobilaženje tog ograničenja.