Эй, хочу получить тип T , но я не могу получить его из экземпляра, мне нужно получить его из параметра класса, как это сделать?
abstract class ViewModelFragment<T : ViewModel>{
protected lateinit var mViewModel: T
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
mViewModel = ViewModelProviders
.of(scope)
.get(getGenericTClass())
// .get(mViewModel.javaClass) // not working either
}
inline fun<reified R> getGenericTClass() = R::class.java
}
Сейчас компилятор жалуется
Нельзя использовать «T» в качестве уточненного типа класса. Вместо этого используйте класс.
Я пытался использовать решение: https://stackoverflow.com/a/34463352/2163045, но не работает для меня