Я читал о Java Reflections, но
до настоящего времени это была смутная концепция
для меня.
Вот краткий обзор в java:
Структурный самоанализ . Основное отражение имеет дело с самоанализом объекта во время выполнения. Это означает, что вы можете изучать структуру объектов и классов во время выполнения программным путем, например, получить класс объекта, список методов класса, список полей, определенных в классе, и т. д.
Рефлексивный вызов и создание экземпляра . С помощью отражения вы можете вызвать метод во время выполнения, который не определен во время компиляции, например, вызовите метод с именем M для объекта O, где M читается в файле конфигурации. Вы также можете создать экземпляр объекта динамически, не зная класс во время компиляции.
Аннотации . Затем вы можете перейти на один уровень вверх в метауровнях и поиграть с аннотациями. Аннотации описывают другие элементы , такие как класс, метод и поля. Многие рамки полагаются на это.
Динамический прокси . Динамический прокси может быть сгенерирован во время выполнения. В этом случае это действительно похоже на динамическое создание класса во время выполнения. Использовать с осторожностью, но в некоторых случаях, безусловно, удобно и мощно.
Полагаю, вы начнете со структурного самоанализа. В других ответах есть ссылки на учебники, но я надеюсь, что это даст вам обзор того, что еще можно сделать.