1

グラフ内のシングルトン オブジェクトに Qualifier の注釈が付けられていない限り、次のように呼び出すことができます。

graph.get(Bus.class);

このオブジェクトがモジュール定義で修飾子で注釈されている場合、IllegalStateException がスローされます。

グラフからそのオブジェクトを取得するより良い方法はありますか?

public class BusWrapper {
    @Inject
    @MyQualifier
    Bus bus;
}

graph.inject(new BusWrapper()).bus;

一連のグラフがあります (アカウントごとに 1 つのグラフ)。アカウント グラフごとに個別のバスと、1 つのアプリ スコープのバス (異なる修飾子で注釈が付けられます)。GCM 同期要求メッセージを受信したら、正しいグラフからバスを取得して同期要求を渡す必要があります。

4

1 に答える 1

4

による注釈付きインスタンス ルックアップの実行.get()はサポートされていません。

引用する良い参考記事が見つかりませんでした。最も近いのはこれです:

Dagger 1.0 は、大きな注釈付きマップのように ObjectGraph を使用するのではなく、確実に堅牢なエントリ ポイント/注入可能なオブジェクトを中心に設計されています。

基本的に、.get()オブジェクト グラフからルート インスタンスを取得するために使用するように設計されており、その下ですべての依存関係が@Inject正常に処理されます。

于 2014-10-06T17:25:19.077 に答える