2016-11-18 6 views
1

Я использую Dagger2 с Android, и я столкнулся с проблемой создания Singleton с использованием именованных вариантов.Кинжал 2 - Модуль Обеспечивает Singleton с

Скажем для моего примера, что я хочу построить объект C из B и A. A здесь не описывается, но B имеет две версии (niceB и notNiceB). Я хочу построить C с notNiceB, как я могу указать, какой bean-компонент для инъекции. @Named ("notNiceB") B b в параметрах не работает.

@Module 
public class MyModule { 

@Provides 
@Singleton 
C providesC(B b, A a) { 
    // Omitted here 
} 

@Provides 
@Singleton 
@Named("niceB") 
B providesNiceB() { 
    // Omitted here 
} 

@Provides 
@Singleton 
@Named("notNiceB") 
B providesNotNiceB() { 
    // Omitted here 
} 
} 
+0

У EpicPandaForce есть это правильно. Поскольку вы упоминаете, что он «кажется не работает», можете ли вы добавить любые сообщения об ошибках или другие данные, которые могут помочь нам отладить? –

ответ

1
@Provides 
@Singleton 
C c(@Named("notNiceB") B b, A a) { 
    // Omitted here 
} 

Это должно работать.

Смежные вопросы