android - 如何从参数类型为 SomeType<*> 的 kotlin 重写 java 中的方法?但需要分配给 SomeType<String>?

标签 android generics kotlin

class SomeClass: ThirdPartyBaseClass {
    private var someValue: AnotherType<String>? = null

    override fun initialize(param1: AType?, param2: AnotherType<*>?) {
        this.someValue = param2
    }
}

当我 overrideThirdPartyBaseClass 初始化方法, Android Studio autocomplete 添加上面的签名。 AnotherType基本上是一个通用类型(来自第 3 部分库),'T' 需要是 'String' 才能使用它。问题是我无法分配 param2someValue因为我收到错误:

type mismatch: required AnotherType<String>? found: AnotherType<*>?.

解决这个问题的正确方法是什么?

最佳答案

您必须使用类型转换来实现此目的。尝试:

override fun initialize(param1: AType?, param2: AnotherType<*>?) {
    this.someValue = param2 as AnotherType<String>?
}

关于android - 如何从参数类型为 SomeType<*> 的 kotlin 重写 java 中的方法?但需要分配给 SomeType<String>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58628736/

相关文章:

android - 未调用 Crashlytics/Fabric initializationCallback

android - 我是否在每次通话时都使整个屏幕无效?

android - 如何在 Android 中从 String 中获取资源 ID

Android - Kapt 构建失败

java - 如何在使用具有不同 fragment/布局的 View 寻呼机时传递 fragment 参数?

swift - swift 从通用对象中获取 element.type

c# - 类使用泛型和泛型类型参数时如何获取正确的MethodInfo对象

c# - 如何将苹果委托(delegate)添加到水果委托(delegate)列表中?

java - WifiManager 中的 startScan() 在 Android P 中已弃用

Android BLE 数值比较配对实现