Тип Проверка от родительского предмета до предмета дара - PullRequest
0 голосов
/ 08 июля 2019

Я использую recyclerview с таким типом элемента (чтобы различать типы элементов)

class MainItem(label: String)
class ChildItem(override label: String) : MainItem(label)
class GrantChildItem(override label: String) : ChildItem(label)

мои recyclerview элементы имеют значение List<MainItem>, когда пользователь щелкает элемент, я использую прослушиватель в режиме привязки.

AdapterClass

class Adapter(onCLickListener: ItemOnClick) : RecyclerView.Adapter<Viewholder>() {
.....
            override fun onBindViewHolder(holder: Viewholder, pos: Int) {
....
                holder.itemView.setOnClickListener { onClickListener.onClick(pos) }
....
            }
.....
}

и вот мой интерфейс ItemOnClick

interface ItemOnClick {
    fun onClick(pos: Int)
}

проблема в том, что я не могу проверить, является ли тип элемента функцией GrantChildItem или ParentItem on onClick.

fun onClick(pos: Int) {
    if (items[pos] is GrantChildItem) // throws error incompatible type
}

попытался сравнить класс отражения java по-прежнему выдает ошибку

if (item[pos]::class.java.isInstance(GrantChildItem::class.java))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...