Какие плюсы и минусы рефлексии

«Какие плюсы и минусы рефлексии» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Плюсы:

  • Гибкость: доступ к приватным полям/методам, динамический вызов методов
  • Интроспекция: анализ классов во время выполнения
  • Полезно для библиотек (DI, сериализация)

Минусы:

  • Производительность: медленнее прямого вызова (~50x)
  • Безопасность: обход инкапсуляции
  • Сложность: код становится хрупким, сложно поддерживать

Пример:

class Secret {
    private val secretCode = 123
}

fun main() {
    val field = Secret::class.java.getDeclaredField("secretCode")
    field.isAccessible = true
    println(field.get(Secret())) // 123
}

Используйте осторожно, только когда нет других вариантов.