Intereting Posts
Использование @ Component.Builder с параметрами конструктора Неверное поле с недопустимым коэффициентом заполнения Стереть внутренний статус объекта в тесте Создание Kotlin нового Gluon для разработчиков Java Основание libgdx не работает как получить информацию, используя библиотеку волейбола в Котлине Каков правильный способ развёртки и обработчиков маршрутов Ktor для типичной реализации REST? Android Kotlin создает реализацию класса Parcelable дает ошибку в «переопределении» метода writeToParcel Kotlin: Сделать внутреннюю функцию видимой для модульных тестов Неразрешенная ссылка: DaggerTestComponent (Kotlin с кинжалом для теста) Невозможно настроить Realm в проекте с помощью Kotlin Как получить SSH вход / выход из одной команды (ssh exec) в Java (текущий: sshj)? Kotlin call типы платформы Java приводят к llegalStateException Разбор JSON с Kotlin JS 'fun <T> parse (текст: String): T`? Новый фрагмент Kotlin из Recyclerview

Как исправить подпись обобщенного метода расширения в 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"