Kotlin:强制转换为未知泛型类

4uqofj5v  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(234)

我有一个相对简单的问题没有得到解决:我想强制转换为动态泛型:

class funnyClass(private val errorHandlers: List<ErrorHandler<*>>) {

fun funnyFun() {
  val errorType = findAnnotation(request)?.type ?: APIError::class
  errorHandlers.forEeach{ errorHandler ->
     val result = (errorHandler as? Errorhandler<errorType>).doSomething(...)
     ...
  }
  ...
}
...

有人知道它是怎么工作的吗?
不幸的是,我没能找到它通过谷歌这个案件。

cetgtptt

cetgtptt1#

这是不可能的,如果你能做到的话也没有意义。将它转换为某个对象是为了在 * 编译 * 时启用该对象的特定函数和属性,或者能够将它作为参数传递给需要它的类型的函数。如果你在编译时不知道要将它转换为什么,那么你就没有启用任何你在编译时可以做的事情。

相关问题