android 类型不匹配:推断的类型为T!,但应为T & Any

nom7f22z  于 2023-11-15  发布在  Android
关注(0)|答案(2)|浏览(118)

我有以下代码:

override fun <T : ViewModel?> create(modelClass: Class<T>): T & Any {

        return try {
            modelClass.getConstructor(DataRepository::class.java).newInstance(mRepository)
        } catch (e: InstantiationException) {...}

字符串

r6hnlfcb

r6hnlfcb1#

我只是把代码改成这样,现在它可以工作了:

override fun <T : ViewModel> create(modelClass: Class<T>): T {
        return try {
            modelClass.getConstructor(DataRepository::class.java).newInstance(mRepository)
        } catch (e: InstantiationException) {}
}

字符串

mklgxw1f

mklgxw1f2#

这种情况通常发生在Kotlin代码中使用@ Notch注解的Java方法调用时。您可以通过将给定的参数类型从T更改为T & Any来解决此错误。
相关JetBrains ticket:https://youtrack.jetbrains.com/issue/KTIJ-20425

相关问题