Как проверить, находится ли конкретный класс внутри списка и возвращаемого индекса?

#android #kotlin

#Android #котлин

Вопрос:

У меня есть список объектов. Эти объекты имеют один и тот же абстрактный класс. Есть ли какой-либо способ получить индекс конкретного объекта на основе имени класса?

Что — то вроде этого:

 open fun getScreenIndex(screen: Classlt;out FlowScreengt;): Int{  return flowList.indexOf(screen) }  

И я бы назвал это так:

 getScreenIndex(AccountScreen::class.java)  

Я создаю динамику ViewPager , которая будет заполнена экранами, и мне нужен способ переключения страниц, но я не хочу использовать индексы (случайные числа внутри кода — это сбивает с толку). Его способ лучше просто назвать экранным именем. Не будет случая, когда у вас будет один и тот же класс дважды в этом списке.

Ответ №1:

Попробуй вот так:

 val index = flowList.indexOfFirst { item -gt; item::class.java == AccountScreen::class.java }  

Вы также можете перейти Classlt;out FlowScreengt; на Classlt;*gt;