Intereting Posts
См. Общий тип в Котлине Подавить «Использовать синтаксис доступа к свойствам» для метода или класса Как установить и настроить Kara Web Framework? Присвоение свойств объекту javascript с использованием динамических имен свойств Dagger2 не работает в android Как разделить строку с набором разделителей и найти, что это за разделитель? Котлин android -kotlin -java.lang.ClassCastException Связывание слушателя; Не удается найти сеттер Ошибка несоответствия типа Котлин при передаче аргументов из терминала Как рекурсивно перебирать атрибуты JsonObject? @PostConstruct не вызывается при использовании Kotlin BeanDefinitionDsl Классы данных в интерфейсе Простой способ узнать, является ли класс анонимным / объектом и получить конкретное имя класса из экземпляра в Котлине Ошибка «Function0 не является функциональным интерфейсом» при передаче java lambda в kotlin fun Обработка аннотации Kotlin: возможно ли генерировать метод расширения?

Как исправить подпись обобщенного метода расширения в kotlin для разрешения «Ошибка вывода типа» в kotlin

Я создал метод расширения:

@Suppress("UNCHECKED_CAST") operator fun <T : View> View.get(@IdRes id:Int): T = this.findViewById(id) as T 

Основное использование этого метода:

 class A { lateinit var text: TextView fun init(view:View) { text = view[R.id.text] } } 

Это работает отлично, но когда я пытаюсь использовать его без переменной:

 fun test() { view[R.id.text].visibility = View.GONE // error } 

Ошибка:

 Type inference failed: Not enough information to infer parameter T in operator fun <T : View> View.get(id: Int): T Please specify it explicitly. 

Если я напишу аналоговый код в java, методы класса View доступны без прямой спецификации типа View.

Возможно ли это в котлин? Может быть, некоторые изменения в подписи общего типа каким-то образом?

Solutions Collecting From Web of "Как исправить подпись обобщенного метода расширения в kotlin для разрешения «Ошибка вывода типа» в kotlin"