Back to questions
Junior — Middle
65
Каким образом можно через рефлексию обратиться к закрытым полям объекта?
Companies where asked
ООО СКВАД
Answer from AI
sobes.tech AI
В Java через рефлексию можно получить доступ к закрытым (private) полям объекта, изменив их доступность с помощью метода setAccessible(true). Это позволяет читать и изменять значения таких полей.
Пример:
import java.lang.reflect.Field;
public class Example {
private String secret = "hidden";
public static void main(String[] args) throws Exception {
Example obj = new Example();
Field field = Example.class.getDeclaredField("secret");
field.setAccessible(true); // снимаем ограничение доступа
// Читаем значение закрытого поля
String value = (String) field.get(obj);
System.out.println("Secret value: " + value);
// Изменяем значение закрытого поля
field.set(obj, "revealed");
System.out.println("New secret value: " + field.get(obj));
}
}
Важно помнить, что использование setAccessible(true) может нарушать инкапсуляцию и должно применяться с осторожностью.