Назад к вопросам
Junior — Middle
66
Каким образом можно получать доступ к приватным свойствам объекта через Reflection API?
Ответ от нейросети
sobes.tech AI
Для доступа к приватным полям объекта через Reflection API в Java нужно выполнить следующие шаги:
- Получить объект
Fieldнужного поля через методClass.getDeclaredField(String name). - Вызвать
field.setAccessible(true), чтобы снять ограничения доступа. - Использовать методы
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"