Рефлексия — Reflection API в JAVA. Примеры

Reflection API в Java используется для просмотра информации о классах, интерфейсах, методах, полях, конструкторах, аннотациях во время выполнения java программ.

package java.lang.reflect;

С помощью интерфейса Java Reflection API можно делать следующее:

  1. Определить класс объекта.
  2. Получить информацию о модификаторах класса, полях, методах, конструкторах и суперклассах.
  3. Выяснить, какие константы и методы принадлежат интерфейсу.
  4. Создать экземпляр класса, имя которого неизвестно до момента выполнения программы.
  5. Получить и установить значение свойства объекта.
  6. Вызвать метод объекта.
  7. Создать новый массив, размер и тип компонентов которого неизвестны до момента выполнения программ.

Для примера создадим сущность

Получение объекта типа Class

Самое простое, что обычно делается в динамическом программировании, — это получают объект типа java.lang.Class.

Если у нас есть экземпляр объекта Class мы можем получить всевозможную информацию об этом классе и даже осуществлять операции над ним. Вышеприведенный метод getClass() часто полезен тогда когда есть экземпляр объекта, но не известно какого класса этот экземпляр.

Если у нас есть класс, для которого в момент компиляции известен тип, то получить экземпляр класса ещё проще.

Если имя класса не известно в момент компиляции, но становится известным во время выполнения программы, можно использовать метод forName(), чтобы получить объект Class.

Получение имени класса

Объект типа String, возвращаемый методом getName(), будет содержать полностью уточненное имя класса, т.е. если типом объекта myObject будет Integer, то результат будет вида java.lang.Integer .

Получение пакета

Получаем интерфейсы, которые реализует класс

Выводим поля класса

Выводим методы, аннотации класса

 

Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 комментариев
старым
новым колличеству голосов
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
Leo Dev Blog | LD
Обзор конфиденциальности

На сайте используются обязательные и аналитические файлы cookie.

Обязательные cookie необходимы для корректной работы сайта.

Аналитические cookie используются для анализа посещаемости и улучшения работы сайта.

Вы можете изменить настройки использования cookie.