java - "projections are not allowed for immediate arguments of a supertype"Kotlin Android Studio

标签 java android android-studio kotlin kotlin-android-extensions

当我将 Java 转换为 Kotlin 时出现此错误:

Java

public class HeaderTab extends ExpandableGroup {
    private String header;

    public HeaderTab(String title, List items) {
        super(title, items);
    }
}

Kotlin

class HeaderTab(title: String, items: List<*>) : ExpandableGroup<*>(title, items) {
    private val header: String? = null
}

Android Studio 是这样说的:

projections are not allowed for immediate arguments of a supertype

这里需要修改什么?

最佳答案

使用 Any快速修复,或引入类型参数以确保不会破坏库的类型安全性。

class HeaderTab(title: String, items: List<*>) : ExpandableGroup<Any>(title, items) {

class HeaderTab<E>(title: String, items: List<E>) : ExpandableGroup<E>(title, items) {

问题在于 kotlin 需要完全指定类类型,因此您可以指定特定类型作为类型参数,也可以通过新的类型参数。

关于java - "projections are not allowed for immediate arguments of a supertype"Kotlin Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44058972/

相关文章:

java - GUI 之外的新线程

java - 在MainActivity中使用我的布局资源文件

android sdk 管理器没有任何额外的文件夹来安装 android 支持存储库

android - 使用命令行和 Gradle 签名的 apk

android - 不使用 Gradle 创建的仪器测试

java - 这个Java语法是什么意思? (`Class<? extends ContactAccessor> clazz`)

java - Java中的重复文件 channel

Java不使用小数

java - Libgdx 如何使矩形纹理转到背景或前景...设置图层?

android - 动态创建 Buttons 并设置 onClickListener