Sobes.tech
Junior — Middle

Kann man in Dagger zwei Methoden in einem Modul implementieren, die denselben Objekttyp zurückgeben?

sobes.tech KI

Antwort von AI

In Dagger ist es nicht möglich, einfach zwei Methoden in einem Modul zu deklarieren, die denselben Objekttyp ohne zusätzliche Qualifikation zurückgeben, da dies zu einem Konflikt bei der Abhängigkeitsauflösung führt. Um eine solche Situation zu realisieren, müssen die Annotations @Qualifier oder @Named verwendet werden, um diese Abhängigkeiten zu unterscheiden. Zum Beispiel:

@Module
public class MyModule {
    @Provides
    @Named("typeA")
    MyObject provideMyObjectA() {
        return new MyObject("A");
    }

    @Provides
    @Named("typeB")
    MyObject provideMyObjectB() {
        return new MyObject("B");
    }
}

Auf diese Weise kann bei der Injektion die gewünschte Variante mit @Named("typeA") oder @Named("typeB") angegeben werden.