В PagingWithNetworkSample , в RedditActivity.kt в строке 68 - это функция, которая содержит другой вызов функции, за которым следуют квадратные скобки и тип класса (строка 78):
private fun getViewModel(): SubRedditViewModel {
return ViewModelProviders.of(this, object : ViewModelProvider.Factory {
override fun <T : ViewModel?> create(modelClass: Class<T>): T {
val repoTypeParam = intent.getIntExtra(KEY_REPOSITORY_TYPE, 0)
val repoType = RedditPostRepository.Type.values()[repoTypeParam]
val repo = ServiceLocator.instance(this@RedditActivity)
.getRepository(repoType)
@Suppress("UNCHECKED_CAST")
return SubRedditViewModel(repo) as T
}
})[SubRedditViewModel::class.java]
}
Что именно это делает? Автоматически приведение к этому типу? (это не массив / список, предполагающий, что он вызывает get
)
Можете ли вы привести пример, где это полезно?