2
我最近遇到了安全導航操作員(?.
)和仿製藥的問題。Kotlin類型與仿製藥不匹配
class A<T : Any?>(private var value: T) {
fun function() {
value?.let {
val notNull: Any = it
// ^^
// Type mismatch:
// Required: Any
// Found: T
}
}
}
我相信上面的代碼應該沒有問題運行,但它會產生上面顯示的錯誤。我錯過了什麼嗎?
儘管傳遞給let的塊只在值不爲空的情況下執行,它仍然是塊內的T型。所以你可以賦值給Any類型的變量,但不賦給Any類型的變量。 –
@JBNizet所以我可以肯定它不是空的,只是施展它? – Mibac
是的,你可以做到這一點。但我不明白爲什麼你的方法是通用的。 –