Sobes.tech
Junior — Middle

Kaip galima pasiekti objekto privačias savybes naudojant Reflection API?

sobes.tech AI

Atsakymas iš AI

Для доступа к приватным полям объекта через 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"