我正在查看Google提供的示例并遇到了这一行
private final ArrayMap<Class, Callable<? extends ViewModel>> creators;
我无法弄清楚如何将Callable<? extends ViewModel>
转换为Kotlin中的lambda
我将如何做到这一点?
编辑:
class ViewModelFactory(appComponent: AppComponent) : ViewModelProvider.Factory {
private val creators: ArrayMap<Class<*>, () -> ViewModel> = ArrayMap()
init {
creators.put(DashboardViewModel::class.java, { appComponent.getDashboardViewModel() })
}
override fun <T : ViewModel?> create(modelClass: Class<T>?): T = creators[modelClass]?.invoke() as T
}
在上面的代码中,我在IDE中收到一条未经检查的cast lint消息。 有没有办法避免这种情况?