Sobes.tech
Junior — Middle

Ինչպես կարելի է հասանելիություն ստանալ օբյեկտի մասնավոր հատկություններին Reflection API-ի միջոցով?

sobes.tech AI

Պատասխան 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"