Java Kotlin问题“类ExpandableRecyclerAdapter需要一个类型参数”

Java Kotlin问题“类ExpandableRecyclerAdapter需要一个类型参数”,java,android-studio,generics,kotlin,android-recyclerview,Java,Android Studio,Generics,Kotlin,Android Recyclerview,RecyclerAdapter ViewHolder出现问题 中的ExpandableRecyclerAdapter带下划线,出现错误: 类ExpandableRecyclerAdapter需要一个类型参数 但是,如果通过删除内部对象将ViewHolder类声明为静态,则错误会消失,但这对我来说是不可接受的 像这样的建议不会有帮助: 谢谢你的帮助 Kotlin不允许在不提供泛型的情况下指定泛型类型,除非您引用的是类的非实例成员。静态内部类::类,伴随方法。因为ViewHolder是一个内部类,所

RecyclerAdapter ViewHolder出现问题

中的ExpandableRecyclerAdapter带下划线,出现错误:

类ExpandableRecyclerAdapter需要一个类型参数

但是,如果通过删除内部对象将ViewHolder类声明为静态,则错误会消失,但这对我来说是不可接受的

像这样的建议不会有帮助:


谢谢你的帮助

Kotlin不允许在不提供泛型的情况下指定泛型类型,除非您引用的是类的非实例成员。静态内部类::类,伴随方法。因为ViewHolder是一个内部类,所以当谈到类型本身时,它的身份取决于外部类的确切规格


这意味着您不能引用泛型ExpandableRecyclerAdapter.ViewHolder,您必须指定外部类所在的边界。将其更改为ExpandableRecyclerAdapter.ViewHolder可以解决此问题。

Kotlin不允许在不提供泛型的情况下指定泛型类型,除非您引用的是类的非实例成员。静态内部类::类,伴随方法。因为ViewHolder是一个内部类,所以当谈到类型本身时,它的身份取决于外部类的确切规格

这意味着您不能引用泛型ExpandableRecyclerAdapter.ViewHolder,您必须指定外部类所在的边界。将其更改为ExpandableRecyclerAdapter.ViewHolder可以解决此问题

abstract class ExpandableRecyclerAdapter<T : ExpandableRecyclerAdapter.ListItem>(private val context: Context) : RecyclerView.Adapter<ExpandableRecyclerAdapter.ViewHolder>() {
    protected var allItems = ArrayList<T>()

    ...

    open inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view)
    open class ListItem(val itemType: Int = 0)  
}