Junior — Middle
89
Ինչպե՞ս կարելի է փոխել օբյեկտի մասնավոր փոփոխականի ներքին վիճակը, առանց օգտագործելու հանրային մեթոդներ, ինչպիսիք են set-ը։
Ընկերությունները, որտեղ հարցրել են
Драйв Клик
Պատասխան AI-ից
sobes.tech AI
Чтобы изменить внутреннее состояние приватной переменной объекта без использования публичных сеттеров, можно применить рефлексию через класс java.lang.reflect.Field.
Пример:
import java.lang.reflect.Field;
class MyClass {
private int secret = 42;
}
MyClass obj = new MyClass();
Field field = MyClass.class.getDeclaredField("secret");
field.setAccessible(true); // снимаем ограничение доступа
field.setInt(obj, 100); // изменяем значение
Такой подход позволяет изменить приватные поля, но нарушает инкапсуляцию и должен использоваться с осторожностью, например, в тестах или при работе с legacy-кодом.