Использовал ли рефлексию на практике

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

Ответ

Да, использовал рефлексию в Android для динамического вызова методов или доступа к полям, когда стандартные способы недоступны. Например, для работы с закрытыми API или тестирования приватных методов.

Пример:

fun callPrivateMethod(instance: Any, methodName: String): Any? {
    val method = instance.javaClass.getDeclaredMethod(methodName)
    method.isAccessible = true
    return method.invoke(instance)
}

Осторожно:

  • Рефлексия медленнее прямого вызова.
  • Может сломаться при обновлении Android/библиотек.
  • ProGuard/R8 может удалить или переименовать методы.

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