나는 이미 내 두 단검 구현의 차이점을 찾으려고 몇 시간을 보냈다. 또한 내가 매핑이 Retrofit
모든 개체를 넣어하기 위해 주석 @IntoMap
및 @RetrofitModulesName(...)
를 사용하고,이 방법은 개조 객체를 제공하는이왜 @ Provides-annotated 오류가 발생합니까?
@Module
class MatchesModule
{
@Provides
@NetworkScope
@IntoMap
@RetrofitModulesName(eRetrofitModules.MATCHES)
fun retrofitMatches(okHttpClient: OkHttpClient, rxAdaptor: RxJava2CallAdapterFactory, iBuilder: Retrofit.Builder): Retrofit = iBuilder.addConverterFactory(GsonConverterFactory.create(mDeserializerMatches));
}
처럼 구현되었다.
@Module
class PreviewModule
{
@Provides
@PreviewScope
fun provideMatchesPresenter(retrofitModules: Map<eRetrofitModules, Retrofit>): IMatchPresenter = MatchPresenter(retrofitModules)
}
나는 모든 Retrofit
객체를 얻고있다 및 MathcPresenter
로 전달 모두 확인하고 괜찮습니다. 하지만 제 발표자에 Map<Foo, Provider<Retrovit>>
을 받고 싶습니다. 그래서 나는
@Provides
@PreviewScope
fun provideMatchesPresenter(retrofitModules: Map<eRetrofitModules,
Provider<Retrofit>>): IMatchPresenter = MatchPresenter(retrofitModules)
뿐만 아니라 MathcPresenter
class MatchPresenter(retrofitModules: Map<eRetrofitModules, Provider<Retrofit>>): IMatchPresenter
의 생성자에 인수로이 단어 Provider
을 추가 그리고 지금은 왜 undersand 수는 없지만, 나는 그런 오류가
Error:(6, 1) error: [com.example.alexeyt.sunshinekotlin.moduls.previewmodule.PreviewComponent.inject(com.example.alexeyt.sunshinekotlin.ui.fragments.previewFragments.PreviewFragment)] java.util.Map> cannot be provided without an @Provides-annotated method.
PreviewScope
@Scope
@Retention(AnnotationRetention.RUNTIME)
annotation class PreviewScope
내가 뭘 잘못하고 있니?
무엇이'@ PreviewScope'입니까? –
@DivyeshKalotra는 –
@DivyeshKalotra 질문에 추가했는데 왜 '미리보기 범위'에 대해 물어 보았습니까? 내가 이해하는 한은 중요하지 않습니다 ... 그것은 인수가 –