Вопрос проверяет понимание механизма рефлексии, позволяющего программе исследовать и изменять свою структуру и поведение во время выполнения.
Reflection (рефлексия) — это механизм, который позволяет программе получать информацию о собственных типах, методах, полях и других элементах во время выполнения. Вместо того чтобы знать всё о структуре кода на этапе компиляции, программа может динамически исследовать себя и даже изменять поведение.
import java.lang.reflect.Method;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
Class clazz = Class.forName("java.util.ArrayList");
Method method = clazz.getMethod("size");
Object list = clazz.getDeclaredConstructor().newInstance();
System.out.println(method.invoke(list)); // 0
}
}Вывод: Reflection — мощный инструмент для создания гибких и расширяемых систем, но его следует использовать с осторожностью, только когда статические механизмы недостаточны. Он незаменим в фреймворках и библиотеках, но в прикладном коде лучше избегать.