Junior — Middle
Μπορείτε να υλοποιήσετε σε Dagger δύο μεθόδους σε ένα ίδιο module που επιστρέφουν τον ίδιο τύπο αντικειμένου;
sobes.tech AI
Απάντηση από AI
Στο Dagger, δεν είναι δυνατόν απλώς να δηλώσετε δύο μεθόδους σε ένα module που επιστρέφουν τον ίδιο τύπο αντικειμένου χωρίς επιπλέον προσδιορισμό, καθώς αυτό θα οδηγήσει σε σύγκρουση κατά την επίλυση της εξάρτησης. Για να υλοποιήσετε μια τέτοια κατάσταση, πρέπει να χρησιμοποιήσετε τις σημάνσεις @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").