Comme le titre:
Quel modificateur de visibilité est préférable pour Provides method dans Module class, package private (par défaut) ou public?Quel modificateur de visibilité est préférable pour la méthode @Provides dans la classe @Module dans dagger2
Et quels sont les avantages et les inconvénients de chaque modificateur?
Oui, je pense aussi que le paquet private est la meilleure option. Mais je suis confronté au problème suivant: je veux passer un objet (ou l'appeler dépendance) dans un constructeur de la classe '@ Mudole', pour éviter de le passer dans chaque méthode' @ Provides', et cette dépendance est fournie par un autre Dans la classe '@ Module', ces deux classes' @ Module' sont dans le paquet deferent, puis je fais face aux choix difficiles: 1. Rendre publique la méthode '@ Provides' de la classe' @ Module'; 2. Recréer la dépendance lors de la construction de l'objet '@ Component', et le passer dans le premier constructeur de la classe' @ Module'. Lequel est le meilleur? – Piasy
@Piasy: La façon dont je l'ai fait dans le passé est de faire en sorte que chaque méthode '@ Provides' prenne l'objet dont elle a besoin comme argument. Alors Dagger peut faire toute la magie pour vous. Si vous ne voulez vraiment pas faire cela, essayez d'utiliser '@ Inject' sur le constructeur du module. Je ne suis pas sûr si cela fonctionne, mais il semble que l'option la plus propre. – Rohan
Merci pour votre réponse! – Piasy