8

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

爪哇

public class HeaderTab extends ExpandableGroup {
    private String header;

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

科特林

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

Android Studio 是这样说的:

超类型的直接参数不允许投影

我需要在这里修改什么?

4

1 回答 1

11

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

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

或者

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

问题是 kotlin 要求完全指定类类型,因此您可以指定特定类型作为类型参数,也可以通过新的类型参数传递。

于 2017-05-18T23:47:35.327 回答