kotlin在继承中遇到的泛型问题

code:
interface  A<T>{
        fun f1(t:T)
    }
    interface A2<T:BaseBean>:A<T>{
        fun f2(t:T)
    }
    class B1:A<Any>{
        override fun f1(t: Any) {

        }
    }
    class B2:B1,A2<BaseBean>{
        override fun f1(t: BaseBean) {

        }

        override fun f2(t: BaseBean) {

        }


    }
 
B2报错 Type parameter T of 'A' has inconsistent values:Any,BaseBean
请问有办法解决吗
已邀请:

kilon

赞同来自:

A的泛型只能是同一种类型,你在传的时候传递了两种不同的类型
Any和BaseBean,编译器懵逼了,他不知道到底使用哪一种,所以出错。

interface  A<T>{
fun f1(t:T)
}
interface A2<T:BaseBean>:A<T>{
fun f2(t:T)
}
open class B1<T>:A<T>{
override fun f1(t: T) {

}
}
class B2:B1<BaseBean>(),A2<BaseBean>{
override fun f1(t: BaseBean) {

}

override fun f2(t: BaseBean) {

}
}

要回复问题请先登录注册