Рефлексия может быть полезна в различных ситуациях, например, при создании метапрограммирования, разработке систем плагинов или динамической генерации кода. Однако её использование может снижать производительность программы и требует осторожности, так как открывает доступ к потенциально небезопасным операциям.
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectionExample {
public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName("com.example.MyClass");
// Создание объекта
Object obj = clazz.getDeclaredConstructor().newInstance();
// Доступ к приватному полю
Field field = clazz.getDeclaredField("privateField");
field.setAccessible(true);
field.set(obj, "New Value");
// Вызов приватного метода
Method method = clazz.getDeclaredMethod("privateMethod");
method.setAccessible(true);
method.invoke(obj);
}
}