Каким образом можно получать доступ к приватным свойствам объекта через Reflection API?

Для доступа к приватным полям объекта через Reflection API в Java нужно выполнить следующие шаги:

Короткий ответ

Что ответить на собеседовании

Для доступа к приватным полям объекта через Reflection API в Java нужно выполнить следующие шаги:

Подробный разбор

Ответ с пояснениями

Для доступа к приватным полям объекта через Reflection API в Java нужно выполнить следующие шаги:

  1. Получить объект Field нужного поля через метод Class.getDeclaredField(String name).
  2. Вызвать field.setAccessible(true), чтобы снять ограничения доступа.
  3. Использовать методы field.get(Object obj) или field.set(Object obj, Object value) для чтения или записи значения.

Пример:

import java.lang.reflect.Field;

class MyClass {
    private String secret = "hidden";
}

MyClass obj = new MyClass();
Field field = MyClass.class.getDeclaredField("secret");
field.setAccessible(true); // снимаем ограничения доступа
String value = (String) field.get(obj);
System.out.println(value); // выведет "hidden"

field.set(obj, "new value");
System.out.println(field.get(obj)); // выведет "new value"

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее