Что сделать чтобы не создавать объект типа function

«Что сделать чтобы не создавать объект типа function» — вопрос из категории Kotlin, который задают на 24% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для избежания создания объектов типа function можно использовать лямбда-выражения или ссылки на методы. В Kotlin лямбды компилируются в анонимные классы, но с оптимизацией inline-функций можно избежать создания объектов.

inline fun doSomething(action: () -> Unit) {
    action()
}

// Использование (не создаст объект function)
doSomething { println("No function object") }

В Java 8+ используйте лямбды или method references:

Runnable r = () -> System.out.println("Lambda");
Runnable r2 = System.out::println; // Method reference

Для OnClickListener в Android:

button.setOnClickListener { /* Лямбда без объекта */ }

Ключевое:

  • inline в Kotlin исключает объекты
  • Лямбды и method references в Java/Kotlin оптимизируются
  • Избегайте анонимных классов (new Runnable() {...})