我有以下情况:
abstract class K<T> {
abstract fun bind(itemModel: T)
}
K
扩展的类class A : K<ModelA> {
override fun bind(itemModel: ModelA) {
// ... do anything
}
}
class B : K<ModelB> {
override fun bind(itemModel: ModelB) {
// ... do anything
}
}
class Factory {
companion object {
const val TYPE_A: Int = 0
const val TYPE_B: Int = 1
fun create(type: Int): K {
return when (type) {
TYPE_A -> A()
TYPE_B -> B()
}
}
}
}
[这时,我在Factory.create
方法的返回类型部分中遇到错误,它说:“类K create
方法中返回K的子类型,这是唯一重要的事情,而不是泛型的特定类型。
这在Java中是可能的。 Kotlin的正确方法是什么?
这里有很多要改进的地方。