Reflection Api
Что это
Reflection(Рефлексия) - это API, который позволяет:
- Получать информацию о переменных, методах внутри класса, о самом классе, его конструкторах,
реализованных интерфейсах и т.д.
- Получать новый экземпляр класса.
- Получать доступ ко всем переменным и методам, в том числе приватным.
- Преобразовывать классы одного типа в другой (cast).
- Делать все это во время исполнения программы (динамически, в Runtime).
Минусы
- Худшая производительность в сравнении с классической работой с классами, методами и переменными.
- Получение доступа к внутренностям класса, что нарушает принцип инкапсуляции.
Как работает
В Java есть специальный класс по имени Class. Поэтому его и называют классом класса. С помощью него
осуществляется работа с рефлексией, он и является входной точкой в мир рефлексии.
Class есть у:
- Классов, интерфейсов, перечислений
- Примитивов и обёрток над ними
- Массивов
- Void - ключевое слово void также имеет Class
В общем, Class есть у всех объектов в Java.