我有一个相对简单的问题没有得到解决:我想强制转换为动态泛型:
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(...)
...
}
...
}
...
有人知道它是怎么工作的吗?
不幸的是,我没能找到它通过谷歌这个案件。
1条答案
按热度按时间cetgtptt1#
这是不可能的,如果你能做到的话也没有意义。将它转换为某个对象是为了在 * 编译 * 时启用该对象的特定函数和属性,或者能够将它作为参数传递给需要它的类型的函数。如果你在编译时不知道要将它转换为什么,那么你就没有启用任何你在编译时可以做的事情。