私はすでに何時間もGoogleで私の2つのダガーの実装の違いを見つけることを試みた。 また、私はマップするために、この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
に渡すすべてがOKと罰金です。 しかし私は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という質問に追加されましたが、なぜプレビュースコープについて質問しましたか?私が理解している限り、それは問題ではありません...引数 –