Из описания пакета java.lang.reflect
:
Классы в этом пакете вместе с
java.lang.Class
размещение
приложения, такие как отладчики,
переводчики, инспекторы объектов, класс
браузеры и сервисы, такие как Object
Сериализация и JavaBeans, которые нуждаются
доступ либо к публичным членам
целевой объект (на основе его времени выполнения
класс) или члены, объявленные
данный класс.
Reflection предоставляет механизм доступа к информации о классах средствами, которые обычно недоступны при регулярном взаимодействии между классами и объектами. Одним из них является предоставление доступа к закрытым полям извне классов и объектов.
Да, отражение в целом действительно может быть опасным, поскольку оно может обнажить внутренности классов и объектов.
Однако это также очень мощный инструмент, который можно использовать для проверки внутренних объектов классов и объектов, к которым нет доступа другими стандартными средствами.