Kotlin 类型与泛型不匹配
Kotlin type mismatch with generics
我最近遇到了一个关于安全导航运算符 (?.
) 和泛型的问题。
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
}
}
}
我最近遇到了一个关于安全导航运算符 (?.
) 和泛型的问题。
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
}
}
}