Встречается на собеседованиях • сегодня

Можно ли получить доступ к приватному методу

Да, можно через рефлексию. Пример:

java
import java.lang.reflect.Method;

class Test {
    private void privateMethod() {
        System.out.println("Private method called");
    }
}

public class Main {
    public static void main(String[] args) throws Exception {
        Test test = new Test();
        Method method = Test.class.getDeclaredMethod("privateMethod");
        method.setAccessible(true); // ключевой момент
        method.invoke(test); // вызов приватного метода
    }
}

Важные моменты:

  1. Нужно использовать getDeclaredMethod() вместо getMethod()
  2. Обязательно вызвать setAccessible(true)
  3. Может выбросить SecurityException, если SecurityManager запрещает доступ
  4. Нарушает принципы инкапсуляции, использовать только в крайних случаях (тестирование, отладка)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы