Два восклицательных знака !! в Kotlin используются для unsafe cast (приведения типов без проверки).
kotlin
Основное назначение !! — преобразование нуллабельного типа в ненуллабельный, явно заявляя, что разработчик уверен, что переменная не будет null в данный момент выполнения.
kotlin
Если при выполнении кода переменная, к которой применено !!, окажется null, будет брошена исключительная ситуация KotlinNullPointerException.
Это следует использовать осторожно, только когда на 100% уверены в отсутствии null. В большинстве случаев предпочтительнее использовать более безопасные механизмы, такие как:
?.?:null (if (variable != null))let, run, also, apply с проверкой на nullkotlin
Таким образом, !! — это инструмент для преобразования нуллабельного типа в ненуллабельный, несущий риски NullPointerException и использующийся для явного утверждения отсутствия null в точке вызова.