首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dagger无法识别提供程序实现

Dagger无法识别提供程序实现
EN

Stack Overflow用户
提问于 2021-04-08 00:57:47
回答 1查看 41关注 0票数 0

我有一个枚举列表,需要通过构造函数注入到视图模型中,但是dagger失败了,并显示以下错误

代码语言:javascript
复制
 SelectDisabilityComponent.java:7: error: [Dagger/MissingBinding] java.util.List<? extends x.x.results.Disability> cannot be provided without an @Provides-annotated method.

这就是模块

代码语言:javascript
复制
@Module
abstract class SelectDisabilityModule {

    @Binds
    abstract fun bindViewModelFactory(impl: SelectDisabilityViewModel.Factory): ViewModelProvider.Factory

    @Module
    companion object {

        @JvmStatic
        @Provides
        fun provideViewModel(fragment: SelectDisabilityFragment, factory: ViewModelProvider.Factory): SelectDisabilityViewModel {
            return ViewModelProvider(fragment, factory).get(SelectDisabilityViewModel::class.java)
        }

        @JvmStatic
        @Provides
        fun provideDisabilities(fragment: SelectDisabilityFragment) : List<Disability>? {
            return fragment.arguments?.getParcelable<DisabilityData>(SelectDisabilityFragment.DISABILITY_DATA)?.disabilities
        }


    }
}

这是枚举

代码语言:javascript
复制
enum class Disability(val value: String) {
    HEARING("hearing"), VISUAL("visual")
}
EN

回答 1

Stack Overflow用户

发布于 2021-05-09 05:34:47

错误消息提到通配符? extends x.x.results.Disability。您可能需要使用@JvmSuppressWildcards注释。

试试fun provideDisabilities(fragment: SelectDisabilityFragment) : List<@JvmSuppressWildcards Disability>

顺便说一句,我不认为你需要在@JvmStatic上安装新版本的Dagger。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66990700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档