[英]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.