6

を取得したいTypeのです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' を使用することはできません。代わりにクラスを使用してください。

この回答の解決策を使用しようとしましたが、うまくいきません

4

1 に答える 1