Multi injection in dagger

android, dagger, dependency-injection

Solution

UPDATED for Dagger2

Already documented.

TL;DR:

In your provider

@Provides @IntoSet Foo provideAFoo() { return AFoo(); } 

... other module or same module ...

@Provides @IntoSet Foo provideBFoo() { return BFoo(); } 

... and somewhere else...

class Bar { 
    @Inject Set<Foo> allMyFoos; 
} 

Starting with Dagger2, the dependencies can be mapped (i.e., `java.util.Map`).

Original Answer (applicable for Dagger1)

Looks like the documentation is not complete, but Dagger already provides this.

for example (extracted from dagger's google group), provide the implementations using Provides.Type.SET

@Provides(type=SET) Foo provideAFoo() { return AFoo(); } 

... other module or same module ...

@Provides(type=SET) Foo provideBFoo() { return BFoo(); } 

... and somewhere else...

class Bar { 
    @Inject Set<Foo> allMyFoos; 
} 

REF: post in dagger's google group

Problem

Is it possible to get a list of implementations of an interface/class in dagger? I am looking at something like Ninject's Multi-Injection.

Original source