Механизм отражения Java объяснил - bɘniɒlqxƎ noiɟɔɘlʇɘЯ ɒvɒᒐ

YOUTUBE · 01.12.2025 09:27

Ключевые темы и таймкоды

Введение в Java Reflection API

0:00
  • Java Reflection API позволяет программам просматривать и изменять себя во время выполнения.
  • Это мощный инструмент, который может нарушать правила программы.
  • Использование рефлексии требует большой ответственности.

Проблемы с поиском кода

0:22
  • Поиск кода на Stack Overflow требует прокрутки вниз и копирования кода.
  • Новая поисковая система Neva предлагает главный ответ и код прямо на странице результатов.
  • Neva свободна от рекламы и обеспечивает конфиденциальность данных.

Что такое рефлексия

1:52
  • Рефлексия позволяет коду "смотреть на себя со стороны".
  • Можно исследовать и изменять элементы любого класса Java во время выполнения.
  • Пример с классом Cat показывает, как использовать рефлексию для получения и изменения полей и методов.

Пример с классом Cat

2:24
  • Класс Cat имеет частные переменные name и age, конструктор и методы получения и установки.
  • Основной метод показывает, как использовать рефлексию для получения всех полей класса.
  • Метод getDeclaredFields возвращает массив полей, которые можно перебрать и изменить.

Изменение приватных полей

5:13
  • Приватные поля не могут быть изменены извне класса.
  • Использование рефлексии позволяет изменить приватные поля, обходя правила доступа.
  • Пример показывает, как изменить имя объекта Cat с помощью рефлексии.

Изменение методов

10:15
  • Рефлексия позволяет получать и изменять методы класса.
  • Метод getDeclaredMethods возвращает массив методов.
  • Пример показывает, как перебрать и изменить методы класса Cat.

Введение в отражение

10:59
  • Объяснение методов, объявленных в классе, и их расположения.
  • Пример использования отражения для вызова метода "meow" в классе "Cat".
  • Описание метода invoke и его параметров.

Вызов метода "meow"

11:47
  • Вызов метода "meow" для объекта "mycat".
  • Метод "meow" не принимает параметров, поэтому дополнительные параметры не нужны.
  • Проверка успешного вызова метода "meow" через отражение.

Вызов закрытого метода

13:24
  • Попытка вызвать закрытый метод "hey, this is a private method" через отражение.
  • Получение исключения "Illegal Access" и решение проблемы с помощью метода setAccessible.

Вызов статических методов

14:41
  • Вызов статических методов с помощью отражения.
  • Пример вызова публичного статического метода "this is a public static method".
  • Аналогичный подход для частных статических методов.

Зачем использовать отражение

16:00
  • Отражение позволяет манипулировать программами и углубляться в их работу.
  • Отражение широко используется в фреймворках, таких как Spring.
  • Отражение полезно для тестирования и установки значений закрытых полей.

Недостатки отражения

17:11
  • Отражение может привести к ошибкам, если не знать, что делаешь.
  • Пример изменения названия метода и его влияние на код.
  • Отражение работает медленнее из-за вычислений во время выполнения.

Заключение

18:49
  • Избегайте использования отражения, если можно обойтись без него.
  • Отражение имеет свои законные применения и может быть полезным инструментом.
  • Призыв к подписке и поддержке канала через лайк и курс по Java.