Intereting Posts
Получение ошибки при работе с геттером и сеттером в котлине Привязать список объектов, используя Guice + Kotlin Преобразование Strat's Creatoken в Kotlin Почему модификатор Kotlin «open» несовместим с «данными»? Как я могу сделать эту функцию функциональным способом программирования? Функция инициализации массива Котлина Как уменьшить размер изображения перед загрузкой, чтобы ускорить приложение? TornadoFX: разрешить копирование элемента из списка в буфер обмена Как добавить новую конфигурацию с помощью Gradle Script Kotlin? Где поставить сгенерированный источник java или kotlin при создании плагина gradle? Как установить не-встроенный OnClickListener в Котлин? Котлин: несоответствие типа Funtional Почему Котлин не выполняет автоматическое литье под давлением? Программно раздутый макет с расширениями Android Kotlin как установить текст, фокус, ошибку на editText в android с 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"