Ответ
Kotlin решал несколько ключевых проблем Java:
- Null-безопасность: В Kotlin типы по умолчанию non-null, а nullable типы явно обозначаются
?. Это уменьшаетNullPointerException.
var nonNullable: String = "text" // Не может быть null
var nullable: String? = null // Может быть null
- Упрощение кода: Kotlin сокращает шаблонный код (геттеры/сеттеры,
equals(),hashCode()).
data class User(val name: String, val age: Int) // Автоматически генерирует методы
- Функциональные возможности: Лямбды, extension-функции, корутины.
listOf(1, 2, 3).filter { it > 1 }.map { it * 2 }
- Interoperability: Kotlin полностью совместим с Java, но без его ограничений (например, checked exceptions).