Heim > Java > javaLernprogramm > Wie kann der Fehler „Kann nicht bereitgestellt werden' von Dagger 2 behoben werden?

Wie kann der Fehler „Kann nicht bereitgestellt werden' von Dagger 2 behoben werden?

Barbara Streisand
Freigeben: 2024-12-10 16:02:14
Original
195 Leute haben es durchsucht

How to Fix Dagger 2's

Fehler bei der Behebung von Dagger 2: „... kann nicht bereitgestellt werden [...]“

Dieser Fehler tritt auf, wenn Dagger 2 nicht bereitgestellt werden kann eine Abhängigkeit ohne einen annotierten Konstruktor oder eine mit @Provides annotierte Methode. Um das Problem zu beheben:

1. Fügen Sie einen @Inject-Konstruktor hinzu

Fügen Sie der nicht bereitgestellten Klasse einen mit @Inject annotierten Konstruktor hinzu:

class MyDependency {
    @Inject
    MyDependency() { /**/ }
}
Nach dem Login kopieren

Dagger verwendet dann diesen Konstruktor, um die Instanz zu erstellen.

2. Erstellen Sie eine @Provides-Methode in einem Modul

Alternativ können Sie eine mit @Provides annotierte Methode in einem Modul erstellen, das die Abhängigkeit zurückgibt:

@Module
class MyModule {
    @Provides
    MyDependency provideMyDependency() {
        return new MyDependency();
    }
}
Nach dem Login kopieren

Dagger verwendet diese Methode zum Erstellen und geben Sie die Abhängigkeit an.

Zusätzlich Überlegungen

  • Stellen Sie sicher, dass die bereitgestellte Abhängigkeit vom gleichen Typ ist wie die angeforderte Abhängigkeit (d. h. keine Superklasse oder Schnittstelle).
  • Stellen Sie sicher, dass die Komponente die Abhängigkeit bereitstellt ( z. B. MyComponent.myDependency()).
  • Wenn Sie Schnittstellen verwenden, verwenden Sie @Binds, um die Implementierung anzugeben vorausgesetzt.

Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Kann nicht bereitgestellt werden' von Dagger 2 behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage