【问题标题】:Kotlin: Cast to unknown generic classKotlin:投射到未知的泛型类
【发布时间】:2023-01-20 05:56:52
【问题描述】:

我有一个相对简单的问题,但我没有解决:我想转换为动态泛型:

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(...)
     ...
  }
  ...
}
...

有人知道它是如何工作的吗?

不幸的是,我无法通过谷歌找到这种情况。

【问题讨论】:

    标签: android kotlin generics


    【解决方案1】:

    这是不可能的,如果可以的话,这样做也没有意义。将其转换为某物是为了启用该对象的特定功能和属性,或者能够将其作为参数传递给需要其类型的函数,在编译时间。如果您在编译时不知道要将其转换为什么的情况下将其转换为某些东西,那么您将无法启用在编译时可以执行的任何操作。

    【讨论】:

      【解决方案2】:

      顺便说一句,科特林精制版对我有用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-07-06
        • 2018-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-03
        相关资源
        最近更新 更多