Можно ли вызвать inline функцию из Java кода

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

Ответ

Нет, inline-функции Kotlin нельзя вызвать напрямую из Java кода. При компиляции inline-функции заменяются своим телом в месте вызова, что несовместимо с Java-вызовами.

Пример:

inline fun printMessage(message: String) {
    println("Message: $message")
}

В Java этот код не скомпилируется:

// Ошибка! Нельзя вызвать inline-функцию из Java
KotlinClass.printMessage("Hello"); 

Если нужно вызывать функцию из Java, уберите модификатор inline или используйте @JvmStatic для функций-компаньонов.