das folgende Szenario Betrachtet:Wie mache ich zwei verschiedene @Provider injizieren die gleiche @Singleton in Dolch 2?
public class SessionManager implements HasSession, HasCredentials{
/**implementation here*/
}
Ich habe eine Sessionmodule definiert Sessionmanager zu injizieren, wenn HasSession oder HasCredentials zur Injektion angefordert wird:
@Module
public abstract class SessionModule {
@Provides @Singleton static HasSession hasSession(SessionManager sessionManager){
return sessionManager;
};
@Provides @Singleton static HasCredentials hasCredentials(SessionManager sessionManager){
return sessionManager;
};
}
Dann habe ich die entsprechende Komponente definiert:
@Component(modules={SessionModule.class})
@Singleton
public interface MyComponent {
public HasSession getSessionProvider();
public HasCredentials getCredentialsProvider();
}
getSessionProvider und getCredentialsProvider werden zwei verschiedene SessionManager Instan erstellen/zurückgeben ce.
Ich möchte eine einzige Instanz von SessionManager erstellt werden und zurückgegeben werden, wenn ich getSessionProvider oder getCredentialsProvider aufrufen. Wie kann ich das mit Dagger 2 schaffen?
Danke für Ihren Kommentar Jake. Ich habe es versucht und funktioniert, aber ich möchte Quilifier vermeiden, wenn sie nicht gebraucht werden. Wenn ich zwei verschiedene Implementierungen der gleichen Schnittstelle hätte, würde ich mich dafür entscheiden. Ich fand eine Lösung, die ziemlich trivial ist. – Dondump