【发布时间】:2021-02-21 12:04:12
【问题描述】:
假设我们有一个抽象类
abstract class BaseFragment
另外,我想在 BaseFragment 类上添加一个类型参数,像这样
abstract class BaseFragment<T>
现在,这是我开始遇到问题的地方 - 我想对 T 施加限制,即我希望 T 成为 BaseFragment 的子类型。但是,当我写
abstract class BaseFragment<T: BaseFragment>
我得到一个编译错误:
类 BaseFragment 需要一个类型参数
我该如何解决这个问题?我试过BaseFragment<out T: BaseFragment> 和BaseFragment<T: BaseFragment<*>> 但这似乎也不起作用......
【问题讨论】:
-
仅仅限制在
BaseFragment是没有意义的。你需要给它一个泛型类型参数。你允许使用任何类型的BaseFragment,还是只允许BaseFragment<T>?
标签: kotlin generics type-parameter