Lambda在Kotlin中使用通配符

时间:2017-05-28 06:18:44

标签: java generics lambda kotlin

我正在查看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消息。 有没有办法避免这种情况?

0 个答案:

没有答案