如何使用可为空的返回值覆盖 Recycler.View 适配器抽象方法?

How to override Recycler.View adapter abstract methods with a nullable returned value?

我正在开发 RecyclerView。 我正在写一个扩展 RecyclerView.Adpater 的 class 并且我正在覆盖 A​​dapter 抽象方法。 我正在使用的列表可能是空的。 所以我想要以下方法:

    override fun getItemViewType(position: Int): Int

到 return Int? 而不是 Int,但是现在编译器告诉我我 return 弄错了 return类型。 那么,如果我想启用可空列表并仍然扩展 RecyclerView.Adapter?

,我该怎么办?

你可以试试这个:

override fun getItemCount(): Int{
    return myList?.size ?: 0
}

进一步简化:

override fun getItemCount(): Int = myList?.size ?: 0

编辑:对于未来的读者,OP 已经改变了问题。我们在评论中稍微讨论了一下