Maison > Java > javaDidacticiel > Comment corriger l'erreur « ne peut pas être fourni » de Dagger 2 ?

Comment corriger l'erreur « ne peut pas être fourni » de Dagger 2 ?

Barbara Streisand
Libérer: 2024-12-10 16:02:14
original
263 Les gens l'ont consulté

How to Fix Dagger 2's

Correction de l'erreur Dagger 2 : "... ne peut pas être fourni [...]"

Cette erreur se produit lorsque Dagger 2 ne peut pas fournir une dépendance sans constructeur annoté ou une méthode annotée avec @Provides. Pour le résoudre :

1. Ajoutez un constructeur @Inject

Ajoutez un constructeur annoté @Inject à la classe qui n'est pas fournie :

class MyDependency {
    @Inject
    MyDependency() { /**/ }
}
Copier après la connexion

Dagger utilisera ensuite ce constructeur pour créer l'instance.

2. Créer une méthode @Provides dans un module

Vous pouvez également créer une méthode annotée avec @Provides dans un module qui renvoie la dépendance :

@Module
class MyModule {
    @Provides
    MyDependency provideMyDependency() {
        return new MyDependency();
    }
}
Copier après la connexion

Dagger utilisera cette méthode pour créer et fournissez la dépendance.

Supplémentaire Considérations

  • Assurez-vous que la dépendance fournie est du même type que la dépendance demandée (c'est-à-dire pas une superclasse ou une interface).
  • Vérifiez que le composant fournit la dépendance ( par exemple, MyComponent.myDependency()).
  • Si vous utilisez des interfaces, utilisez @Binds pour spécifier l'implémentation fourni.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal