Ответ
Kotlin предлагает более продвинутую систему типов по сравнению с Java:
-
Null-безопасность - в Kotlin типы по умолчанию non-null (
String), nullable обозначаются?(String?). В Java все типы nullable. -
Умные приведения - Kotlin автоматически приводит типы после проверки:
if (obj is String) {
println(obj.length) // автоматическое приведение к String
}
-
Any vs Object - Kotlin использует
Anyкак аналогObject, но без методовwait()/notify(). -
Unit vs void - Kotlin использует
Unitвместоvoid, при этомUnit- это реальный объект. -
Nothing - специальный тип в Kotlin для функций, которые никогда не завершаются (например, бросают исключение).
-
Ковариантность/контравариантность - в Kotlin проще работать с дженериками благодаря модификаторам
outиin.