Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin-对类型参数施加限制_Kotlin_Generics_Type Parameter - Fatal编程技术网

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>()