我有一个枚举列表,需要通过构造函数注入到视图模型中,但是dagger失败了,并显示以下错误
SelectDisabilityComponent.java:7: error: [Dagger/MissingBinding] java.util.List<? extends x.x.results.Disability> cannot be provided without an @Provides-annotated method.这就是模块
@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
}
}
}这是枚举
enum class Disability(val value: String) {
HEARING("hearing"), VISUAL("visual")
}发布于 2021-05-09 05:34:47
错误消息提到通配符? extends x.x.results.Disability。您可能需要使用@JvmSuppressWildcards注释。
试试fun provideDisabilities(fragment: SelectDisabilityFragment) : List<@JvmSuppressWildcards Disability>。
顺便说一句,我不认为你需要在@JvmStatic上安装新版本的Dagger。
https://stackoverflow.com/questions/66990700
复制相似问题