智能转换为 kotlin.String
Smart cast to 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
如果满足if
条件就不能null
,所以它执行了一个smart cast从String?
到String
。这就是允许 html.replace("TRIP_STATUS_VALUE", mTripStatus)
编译的原因。
但请注意,这不应被解释为编译器警告。这是惯用的 Kotlin 代码。
此代码:
var html :String = HTML
html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html
可以是:
var html: String = html
mTripStatus?.let { html = html.replace("TRIP_STATUS_VALUE", mTripStatus) }
我正在尝试使用 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
如果满足if
条件就不能null
,所以它执行了一个smart cast从String?
到String
。这就是允许 html.replace("TRIP_STATUS_VALUE", mTripStatus)
编译的原因。
但请注意,这不应被解释为编译器警告。这是惯用的 Kotlin 代码。
此代码:
var html :String = HTML
html = if (mTripStatus!=null) html.replace("TRIP_STATUS_VALUE", mTripStatus) else html
可以是:
var html: String = html
mTripStatus?.let { html = html.replace("TRIP_STATUS_VALUE", mTripStatus) }