Junior — Middle
Dagger-ში ერთ მოდულში ორი მეთოდის განხორციელება შესაძლებელია, რომლებიც ერთიდაიგივე ტიპის ობიექტს აბრუნებენ?
sobes.tech AI
პასუხი AI-სგან
Dagger-ში, დამატებითი კვალიფიკაციის გარეშე, ერთ მოდულში ორი მეთოდის მარტივი გამოცხადება შეუძლებელია, რომლებიც აბრუნებენ ერთსა და იმავე ტიპის ობიექტს, რადგან ეს გამოიწვევს დამოკიდებულების გადაჭრის კონფლიქტს. ასეთი სიტუაციის განსახორციელებლად, საჭიროა გამოიყენოთ @Qualifier ან @Named ანოტაციები, რათა განასხვავოთ ეს დამოკიდებულებები. მაგალითად:
@Module
public class MyModule {
@Provides
@Named("typeA")
MyObject provideMyObjectA() {
return new MyObject("A");
}
@Provides
@Named("typeB")
MyObject provideMyObjectB() {
return new MyObject("B");
}
}
ამგვარად, ინექციის დროს შეიძლება მიუთითოთ საჭირო ვარიანტი @Named("typeA") ან @Named("typeB") გამოყენებით.