Intereting Posts
Dokka использует полностью квалифицированные имена классов Множественные значения не допускаются для опции плагина. Org.jetbrains.kotlin.android:package Правило Kotlin Proguard для перечисления? В TornadoFX, как я могу выбрать глубоко вложенное свойство для свойства nullable ItemViewModel? Проблема с защитой класса Kotlin для Android Kotlin: доступ к параметру when-statement Как «продолжить» или «ломать» в выражении `when` внутри цикла while, используя Kotlin Как сохранить тип объекта для интеллектуального каста при возврате Any База данных Firebase всегда отключена, когда протестирована на физическом устройстве Android Чем отличаются MutableMap и Map в Котлине? пусть, также, применять, takeIf, takeUnless в Котлине Лучший способ перевести этот код Java в kotlin Jooq-транзакции: соединения не выводятся в пул, если исключение выбрано в транзакции Как десериализовать ThreeTen LocalDateTime в дооснащении? onCreate crashing после преобразования с Java в Kotlin

Смарт-литье в kotlin.String

Я пробовал Kotlin и получил сообщение от компилятора:

Smart cast to kotlin.String 

Код:

 /*"mTripStatus" is a nullable String*/ var html :String = HTML html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html 

Что это значит?

Компилятор знает, что mTripStatus не может быть null если условие if выполнено, поэтому он выполняет умное преобразование из String? к String . Это позволяет html.replace("TRIP_STATUS_VALUE", mTripStatus) .

Но учтите, что это не должно интерпретироваться как предупреждение компилятора. Это идиоматический код Котлина.