Kotlin-对类型参数施加限制
假设我们有一个抽象类Kotlin-对类型参数施加限制,kotlin,generics,type-parameter,Kotlin,Generics,Type Parameter,假设我们有一个抽象类 abstract class BaseFragment 此外,我想在BaseFragment类上添加一个类型参数,如下所示 abstract class BaseFragment<T> 我得到一个编译错误: 类BaseFragment需要一个类型参数 我如何解决这个问题?我尝试了BaseFragment和 BaseFragment但这似乎也不起作用…您必须指定BaseFragment的类型边界不起作用,因为那样的话,任何东西都不能满足条件。你可以用 abst
abstract class BaseFragment
此外,我想在BaseFragment类上添加一个类型参数,如下所示
abstract class BaseFragment<T>
我得到一个编译错误:
类BaseFragment需要一个类型参数
我如何解决这个问题?我尝试了BaseFragment
和BaseFragment
但这似乎也不起作用…您必须指定BaseFragment
的类型边界<代码>不起作用,因为那样的话,任何东西都不能满足条件。你可以用
abstract class BaseFragment<T: BaseFragment<T>>
抽象类BaseFragment
子类可以“推卸责任”:
开放类Foo:BaseFragment()
//或
打开类栏:BaseFragment()
或满足子类型要求本身:
class Baz: BaseFragment<Baz>()
类Baz:BaseFragment()
仅仅约束到
BaseFragment
是没有意义的。您需要给它一个泛型类型参数。您允许任何类型的BaseFragment
,还是只允许BaseFragment
?
open class Foo<T: BaseFragment<T>>: BaseFragment<T>()
//or
open class Bar<T: Bar<T>>: BaseFragment<T>()
class Baz: BaseFragment<Baz>()