Встречается на собеседованиях • сегодня

Как получить доступ к приватным полям через рефлексию

В 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()`) значение поля

Осторожно: использование рефлексии для доступа к приватным полям нарушает инкапсуляцию и может вызвать проблемы с безопасностью.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы