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