繁体   English   中英

如何指定从特定类扩展的通用数据类型

[英]how to specify a generic data type that extends from a specific class

我是新科特林,我想知道如何为方法提供通用数据类型作为参数。 在java中

methods(<? extends Class1>)

请查看下面发布的代码,让我知道如何对其进行重构以适应所提供的注释。

更新

   var fragTransactionInstance = getFragmentManagerInstance()?.let {
        it.getFragmentTransactionInstance()
            ?.replaceTransaction(R.id.fragLeft, fragmentLeft)//RequiredTypeVariable (T)Found: FragmentLeft
            ?.replaceTransaction(R.id.fragRight, fragmentRight)
    }?.also {
        it.commit()
    }

代码

 fun FragmentTransaction.replaceTransaction(layout: Int, fragment : Fragment): FragmentTransaction {
    return this.replace(layout, fragment)
}
//the second parameter must be any parameter that extends Fragment. e.g: <? extends Fragment>

查看以下解决方案以在Kotlin中使用泛型创建函数:

fun <T : SomeClass> someFun(t: T) {

}

就您而言,它就像:

fun <T : Fragment> FragmentTransaction.replaceTransaction(layout: Int, t: T): FragmentTransaction {
    return this.replace(layout, t)
}

在这里, t应该是Fragment类型。

请参阅此处以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM