Рефлексія (reflection)
Коротко: Рефлексія дозволяє програмі досліджувати й змінювати власну структуру під час виконання: запитувати класи, методи, поля й анотації, створювати об’єкти та викликати методи, назви яких відомі лише під час виконання.
Докладніше: Фреймворки активно використовують рефлексію: контейнери впровадження залежностей (впровадження залежностей), ORM, серіалізатори (серіалізація) і тестові фреймворки знаходять класи та методи за назвами чи анотаціями, не знаючи їх під час компіляції.
Подробиці
Class<?> k = Class.forName("java.util.AДив. також: анотації, впровадження залежностей, серіалізація, макроси