android - 如何在 Kotlin 扩展函数中使用泛型
问题描述
我有 2 个功能基本相同,所以我想创建一个扩展功能。
问题是我需要提取每个类的数据才能得到正确的结果,我想创建一个通用函数,并在这个函数内部决定访问哪个类成员内部when
语句。
但是当我尝试T
在 when 语句中调用时,我得到了Type parameter 'T' is not an expression
我究竟做错了什么?
我的功能:
fun <T: Any> List<T>.extractWithSepreation(errorString: String): String {
var errorString = "There is no available $errorString"
if (this.isEmpty()) {
return errorString
}
errorString = ""
this.forEachIndexed { index, item ->
when(T)
}
}
解决方案
错误消息几乎说明了一切。T
不是表达式,因此不能在内部使用when(...)
。T
只是指 的item
类List
。
你不是说使用类似的东西:
when(item) {
is ClassA -> doSomething()
is ClassB -> doSomethingElse()
}
?
推荐阅读
- angular - 使用 Cypress 更改 Angular Material 中的选项卡
- ssl - ssl 证书问题 (ERR_SSL_PROTOCOL_ERROR)
- javascript - Metafizzy Isotope Uncaught TypeError
- react-native - React Native Firebase 消息传递后台通知未打开应用程序
- flutter - Flutter 和 Sembast - 方法返回 null
- android - Gradle 的依赖缓存似乎已损坏或不同步
- c# - 当我尝试从上下文对象返回字符串时,我的辅助函数抛出错误
- python - Pyspark - 如何将转换后的列与原始 DataFrame 合并?
- python - 在登录页面中循环大量帐户的最快方法是什么
- python - 如何在 tkinter 中重置 StringVar