Можно ли создать экземпляр Nothing

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

Ответ

Nothing в Kotlin — это тип, который не имеет экземпляров. Он используется для обозначения операций, которые никогда не завершаются нормально (например, выбрасывают исключение или зацикливаются).

Попытка создать экземпляр Nothing приведёт к ошибке компиляции:

val nothing: Nothing = throw IllegalStateException() // ОК, но не создаёт экземпляр
val x: Nothing = Nothing() // Ошибка: Cannot access '<init>': it is private in Nothing

Пример использования:

fun fail(message: String): Nothing {
    throw IllegalArgumentException(message)
}

Nothing полезен для функций, которые всегда завершаются исключением, или как тип для null в обобщённых типах (List<Nothing>).