Использование такого отражения - плохая идея. Посмотрите здесь для получения информации о недостатках.
О производительности:
"Поскольку отражение включает типы, которые динамически разрешаются, определенная Java виртуальная машина оптимизация не может быть выполнена. Следовательно, отражающие операции имеют более низкую производительность, чем их неотражающие аналоги, и их следует избегать в разделах кода, которые часто вызываются в чувствительных к производительности приложениях. "
Не ' не думайте о рефлексии как о нормальном инструменте, подобном String
или ArrayList
, и скорее пытайтесь реализовать лучший дизайн программного обеспечения, соответствующий вашим потребностям. Тогда вам придется очень редко задумываться о рефлексии.
Редактировать:
Потери производительности, конечно, спорны, но помните о других недостатках. Как уже говорилось, существуют проблемы безопасности, например, когда пользователь «вызывает» метод, который не предназначен для «непосредственного вызова» пользователем. Другим недостатком является то, что у вас потенциально могут быть проблемы в коде, которые невозможно найти во время компиляции из-за отражения. И еще много минусов ...
По моему мнению, рефлексия должна использоваться главным образом для решения технических проблем, которые не имеют прямого отношения к производственному коду, например при тестировании вашего программного обеспечения.