代码之家  ›  专栏  ›  技术社区  ›  Johann

在Kotlin中使用二级构造函数

  •  -2
  • Johann  · 技术社区  · 7 年前

    我得到错误:

    应为成员声明

    class MyAdapter(val context: Context)  {
        constructor(context: Context,  itemInfos: List<ItemInfo>): RecyclerView.Adapter<ContentItemViewHolder> {
    
        }
    }
    

    我做错什么了?

    2 回复  |  直到 7 年前
        1
  •  2
  •   Sergio    7 年前

    这样做:

    class MyAdapter(val context: Context): RecyclerView.Adapter<ContentItemViewHolder>() {
        constructor(context: Context,  itemInfos: List<ItemInfo>): this(context) {
    
        }
    }
    

    如果继承自另一个类,则应在类声明中指定该类,而不是构造函数声明。

        2
  •  1
  •   Feedforward    7 年前

    您应该在类声明之后放置超类:

    class MyAdapter(val context: Context): RecyclerView.Adapter<ContentItemViewHolder>  {
        constructor(context: Context,  itemInfos: List<ItemInfo>): this(context) {
    
        }
    }