Интеллектуальная переменная литья в обходном пути lambda kotlin

Сегодня у меня есть лямбда, у которой есть переменная, которая имеет неизвестный тип, и внутри условия when.is, переменная не может быть умной, отличной от типа в условии … она дает, что это невозможно, поскольку переменная является Public Api, есть ли обходной путь?

введите описание изображения здесь

    Вы можете создать более удобную onBind расширения onBind которая имеет item , view и т. Д., ItemViewTypePosition лямбда вместо получения ItemViewTypePosition :

     inline fun LastAdapter.Builder.onBind(crossinline f: (item: Any, view: View, type: Int, position: Int) -> Unit): LastAdapter.Builder { return onBindListener(object : OnBindListener { override fun onBind(item: Any, view: View, type: Int, position: Int) { f(item, view, type, position) } }) } 

    Применение:

     builder.onBind { item, view, type, position -> when (item) { is Product -> view.number_sold.text = item.price.toString() } } 

    Я нашел простое обходное решение, которое определяет значение val для равного требуемой переменной и использует это вместо этого так …

    введите описание изображения здесь

    Другой способ сделать это – сделать бросок самостоятельно:

     .onBind { when(item) { is Product -> view.number_sold_text = (item as Product).price.toString() } } 
    Intereting Posts
    Подождите, пока два наблюдаемых испускают истину как загрузить конфигурацию в spring-webflux без весенней загрузки? Что такое открытое свойство? Почему я не могу сделать свой сеттер частным? Как поместить диалог в нижнюю часть Загрузите GIF с использованием слайд-версии 4.2.0 в Котлин Создайте собственный класс View / ViewGroup в Anko DSL Android – Как установить ColumnComparator в SortTableView с Kotlin Несоответствие типа приемника с макетами Anko Как вызвать функцию javascript из Kotlin, которая ожидает объект настроек jQuery ajax? Vaadin 8 NativeSelect изменить представление данных списка Просмотр не обновляется после первого запуска LiveData при использовании фоновой работы в Android Проблемы с HasSupportFragmentInjector в kotlin – DispatchingAndroidInjector – null Kotlin – Значение преобразования при инициализации Как использовать стек в Котлине? Bluetooth-клиент Socket получает одинаковое исключение каждый раз