Единый восклицательный знак в Котлине

Что означает один восклицательный знак в Котлине? Я видел это несколько раз, особенно при использовании Java API. Но я не мог найти его в документации или в StackOverflow.

Они называются типами платформ, и они означают, что Котлин не знает, может ли это значение быть или не может быть null и вам решать, является ли оно нулевым или нет.

В двух словах проблема состоит в том, что любая ссылка, исходящая из Java, может быть нулевой, а Kotlin, являющийся нулевым по дизайну, принуждает пользователя к нулевому проверке каждого значения Java или использованию безопасных вызовов ( ?. ) Или не-null утверждения ( !! ). Те, которые являются очень удобными функциями в чистом мире Котлин, имеют тенденцию превращаться в катастрофу, когда вам приходится слишком часто их использовать в настройках Kotlin / Java.

Вот почему мы взяли радикальный подход и сделали систему типа Котлин более расслабленной, когда приходит к Java interop: теперь ссылки, поступающие с Java, имеют специально обозначенные типы – Kotlin Blog

Это обозначения для типов платформ :

T! означает « T или T? »