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"