【发布时间】:2018-08-30 03:03:43
【问题描述】:
我想生成如下函数:
fun ViewGroup.allRadioButtons(f: (RadioButton) -> Unit){
this.afterMeasured {
for(i in 0 until childCount){
val child = getChildAt(i)
if(child is RadioButton){
f(child)
}
if(child is ViewGroup){
child.allRadioButtons(f)
}
}
}
}
所以我不想硬编码RadioButton,而是使用通用的T,如下所示:
inline fun <reified T> ViewGroup.allViewsOfTypeT(f: (T) -> Unit){
this.afterMeasured {
for(i in 0 until childCount){
val child = getChildAt(i)
if(child is T){
f(child)
}
if(child is ViewGroup){
child.allRadioButtons(f)
}
}
}
}
我不能这样做,因为递归函数中不允许具体类型。
如何在 Kotlin 中生成该函数?
【问题讨论】: