Встречается на собеседованиях • сегодня
Как получить доступ к приватным полям через рефлексию
В Java можно получить доступ к приватным полям с помощью рефлексии, используя класс Field из пакета java.lang.reflect. Вот пример:
java
import java.lang.reflect.Field;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
MyClass obj = new MyClass();
Field privateField = MyClass.class.getDeclaredField("privateField");
privateField.setAccessible(true); // снимаем проверку доступа
String value = (String) privateField.get(obj);
System.out.println(value); // выведет "Secret"
privateField.set(obj, "New Value"); // изменяем значение
}
}
class MyClass {
private String privateField = "Secret";
}
text
Важные моменты:
1. `getDeclaredField()` получает поле по имени, включая приватные
2. `setAccessible(true)` отключает проверку модификаторов доступа
3. После этого можно читать (`get()`) и изменять (`set()`) значение поля
Осторожно: использование рефлексии для доступа к приватным полям нарушает инкапсуляцию и может вызвать проблемы с безопасностью.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы