【发布时间】:2025-12-12 02:20:03
【问题描述】:
在 Kotlin 中,如果我们有一个带构造函数的类:
open class Wrapper<T>(val value: T)
我们可以在不指定类型参数的情况下调用构造函数:
val wrapped = Wrapper("value")
指定类型参数(例如Wrapper<String>("value"))是多余的,IntelliJ 会告诉你。
但是,如果构造函数调用是extends 子句,则类型参数是必需的。例如
class StringWrapper : Wrapper<String>("value") // compiles
class StringWrapper : Wrapper("value") // does not compile
在这个看似非常相似的情况下,为什么不能推断出类型参数?
【问题讨论】:
-
我已经在youtrack.jetbrains.com/issue/KT-43594报告了这个。
标签: generics kotlin type-inference