私はKotlinプロジェクトにDagger2を実装しようとしていますが、私は@Inject
注釈に問題があります。コトリンでvarに注射するには?
Javaでは、それはこのようになりますと、これは正常に動作します:
public class FooActivity extends Activity {
@Inject
@Named("accessTokenObservable")
public Flowable<Optional<AccessToken>> accessTokenObservable;
@Override
protected void onCreate(@Nullable final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
App.getGraph().inject(this);
}
}
しかし、私はKotlinに@Inject
行を記述する必要がどのように?
私はこの1つを使用する場合:
@Inject
@Named("accessTokenObservable")
var accessTokenObservable: Flowable<Optional<AccessToken>>? = null
私は、このエラーメッセージが出ます:私は、このエラーメッセージが表示されます
@Inject
@Named("accessTokenObservable")
lateinit var accessTokenObservable: Flowable<Optional<AccessToken>>
::私はlateinit
を使用している場合
Error:Dagger does not support injection into private fields
を
をError:Flowable<Optional<AccessToken>> cannot be provided without
an @Provides- or @Produces-annotated method.
Kotlinに何かを注入する正しい構文は何ですか?
は、[このトピック](HTTPを見てみましょう、あなたの活動にあなたのオブジェクトを挿入する必要があります。この場合、 は、あなたのインジェクタクラスで提供する必要があります.com/questions/36199796/dagger-2-named-can-be-provide-a-provide-methodを提供することはできません)。名前付き注入には特殊な構文があります – Dimezis
ありがとうございます@Dimezis –