0

Moduleインターフェイスを実装するか、クラスを拡張するクラスで、どの型がバインダーにバインドされているかを判断する方法はありますかAbstractModule。一部の型をバインダーにバインドするヘルパー メソッドを実装する必要がありますが、このメソッドがバインドする必要がある型の一部は既にバインダーにバインドされている可能性があります。同じタイプがバインダーに複数回バインドされるとどうなるか知っている人はいますか?

型がシングルトンとしてバインドされている場合はどうなりますか?

4

1 に答える 1

1

それ自体をバインドするヘルパーではなく、ヘルパーを使用してモジュールのリストを作成することをお勧めします。

その後、「Modules.combine(listOfModules)」関数を使用して、重複したモジュール定義を削除できます。

Guice.createInjector(Modules.combine(listOfModules));

または、「listOfModules」を作成するときに、リストに追加する前にモジュールが存在するかどうかをテストできます。

for (AbstractModule item : listOfModules) {
    if (moduleToAdd.getClass().isAssignableFrom(item.getClass())) {
        return listOfModules;
    }
}
modules.add(moduleToAdd);
return listOfModules;

よろしく!

于 2013-09-09T06:50:57.133 に答える