Java Reflection считается тёмной стороной программирования, потому что при его использовании могут возникать следующие проблемы:
- Снижение производительности программы. 4 Рефлексия работает медленнее, чем обычные приёмы по обработке классов, методов и переменных. 4
- Отсутствие безопасности на этапе компиляции. 2 При рефлексии многие ошибки проявляются только во время выполнения программы, что делает код менее безопасным. 2
- Уязвимость. 4 При неверном использовании Java Reflection API способен нарушать один из главных принципов объектно-ориентированного программирования — инкапсуляцию данных. 4 Это может привести к появлению потенциальных уязвимостей в веб-приложениях. 4
- Нарушение переносимости программы. 4 Поскольку Java Reflection API позволяет коду выполнять операции, которые обычно находятся под запретом, например получать доступ к закрытым полям и методам, использование рефлексии может сделать код неработоспособным и нарушить переносимость с одной операционной системы на другую. 4