Sobes.tech
Junior — Middle
95

Kann man mit der Reflection API die Werte privater Variablen einer Klasse ändern oder lesen?

Antwort von AI

sobes.tech KI

Да, через Reflection API в Java можно получить доступ к приватным полям класса и изменить или считать их значения. Для этого нужно вызвать метод setAccessible(true) у объекта Field, чтобы обойти проверку доступа.

Пример:

import java.lang.reflect.Field;

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

Example obj = new Example();
Field field = Example.class.getDeclaredField("secret");
field.setAccessible(true); // разрешаем доступ
String value = (String) field.get(obj); // читаем значение
field.set(obj, "new value"); // изменяем значение