Это правильный способ бросить

Каков наилучший способ передать объект определенному типу объекта, если он не является нулевым (в противном случае вызывается фабричный метод). Это происходит внутри BaseAdapter. Каков наилучший способ сделать это?

val itemView = view as? ItemView ?: factory() 

Я получаю следующее предупреждение в Android Studio

Unchecked cast: View? to ItemView

    Вы можете обрабатывать его элегантно и функционально с помощью сопоставления с образцом:

     val itemView = when(view) { is ItemView -> view else -> factory() }