智能投射到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 

这是什么意思?

编译器知道,如果if条件满足, mTripStatus不能为null ,所以它执行从String? 智能转换 String? String 。 这就是html.replace("TRIP_STATUS_VALUE", mTripStatus)的编译方式。

但是请注意,这不应该被解释为编译器警告。 这是惯用的Kotlin代码。