Kotlin类型与泛型不匹配

我最近遇到了关于安全导航操作符( ?. )和泛型的问题。

 class A<T : Any?>(private var value: T) { fun function() { value?.let { val notNull: Any = it // ^^ // Type mismatch: // Required: Any // Found: T } } } 

我相信上面的代码应该没有问题运行,但会产生上面显示的错误。 我错过了什么吗?

我想你已经从你的例子中留下了一些东西来得到这个错误。 所以我会猜测,你真的想要达到什么目的,请原谅我,如果我误解了你的意图。

 class A<T : Any>(private val value: T?) { // T? instead of T to allow null value fun function() { value?.let { // *it* is already a non-null because you did a ?.let on a T? type } } }