Kotlin был спроектирован как более лаконичная и выразительная альтернатива Java, и в результате несколько возможностей Java были намеренно опущены.
Kotlin не поддерживает checked exceptions. Нет необходимости явно объявлять или ловить исключения, что уменьшает количество шаблонного кода, но при этом всё ещё позволяет обрабатывать исключения при необходимости.
В Kotlin нет примитивных типов на уровне языка. Все типы рассматриваются как объекты (например, Int, Double, Boolean). Компилятор самостоятельно оптимизирует код до примитивов JVM, но это невидимо для разработчика.
В Kotlin нет static-членов. Вместо этого предоставляются альтернативы:
Kotlin обеспечивает инкапсуляцию по дизайну. Нет открытых не-приватных полей; вместо этого все свойства доступны через сгенерированные геттеры и сеттеры, что способствует лучшему сокрытию данных.
Java использует wildcard-типы (например, ? extends T, ? super T) для вариативности обобщённых типов. Kotlin заменяет это на вариантность на месте объявления, используя ключевые слова in и out, что считается более чистым и читаемым подходом.
В Kotlin нет тернарного оператора (a ? b : c). Вместо этого Kotlin рассматривает if как выражение, позволяя ему напрямую возвращать значение:
val result = if (condition) valueA else valueB
Все эти упущения — намеренные проектные решения, направленные на то, чтобы сделать Kotlin безопаснее, лаконичнее и менее подверженным ошибкам по сравнению с Java.
Тип Int в Kotlin компилируется прямо в примитивный тип int Java во время выполнения, что делает его функционально идентичным примитивам Java с точки зрения производительности.
Новый — ещё не проверен сообществом
Вы