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
Barbara StreisandOriginal
2024-12-10 16:02:14169Durchsuche

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() { /**/ }
}

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();
    }
}

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!

Stellungnahme:
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