Sobes.tech
Junior — Middle

Kas Daggeris võimaldab ühes modulites rakendada kahte meetodit, mis tagastavad sama objekti tüüpi?

sobes.tech AI

Vastus AI-lt

Daggeris ei saa lihtsalt deklareerida kahte meetodit samas modulites, mis tagastavad sama objekti tüüpi ilma täiendava kvalifikatsioonita, kuna see põhjustab sõltuvuse lahendamisel konflikti. Sellise olukorra realiseerimiseks tuleb kasutada annotatsioone @Qualifier või @Named, et neid sõltuvusi eristada. Näiteks:

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

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

Seega saab injekteerimisel määrata soovitud variandi, kasutades @Named("typeA") või @Named("typeB").