Junior — Middle
È possibile implementare in Dagger due metodi in un modulo che restituiscono lo stesso tipo di oggetto?
sobes.tech AI
Risposta dell'AI
In Dagger, non è possibile semplicemente dichiarare due metodi in un modulo che restituiscono lo stesso tipo di oggetto senza una qualificazione aggiuntiva, poiché ciò porterebbe a un conflitto durante la risoluzione della dipendenza. Per implementare una tale situazione, è necessario utilizzare le annotazioni @Qualifier o @Named per distinguere queste dipendenze. Ad esempio:
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
In questo modo, durante l'iniezione, si può specificare la variante desiderata usando @Named("typeA") o @Named("typeB").