In Dagger2 in der Dokumentation, sagen Sie esWas ist "Dolch wird diese Felder injizieren, wenn angefordert, aber keine neuen Instanzen erstellen" bedeutet?
Wenn Ihre Klasse @ Inject-kommentierten Felder hat aber kein @ Konstruktor Inject-kommentierten, wird Dagger diese Felder spritzen, wenn gewünscht, aber nicht neue Instanzen erstellen. Fügen Sie einen Konstruktor ohne Argumente mit der Annotation @Inject hinzu, um anzugeben, dass Dagger Instanzen wie erstellen kann.
Wie es Felder injizieren, aber keine neuen Instanzen erstellen? Was ist der Unterschied?
Danke !! ..eine andere Frage ... Könnten Sie bitte einen Blick darauf werfen. Ich benutze Dolch in einer Klasse, die in der Mitte des Abhängigkeitsgraphen einige Abhängigkeiten benötigt, die bereits vom Modul bereitgestellt wurden. Zuerst benutze ich Feldinjektion, nur annotiert '@ Inject' auf Feld, und kein Konstruktor, dann fehlgeschlagen, gab mir einen Nullzeiger. Danach bewege ich das Feld in den Konstruktor mit dem Kommentar '@ Inject' auf dem Konstruktor, es hat gut funktioniert. Habe ich etwas verpasst? –
Ich fürchte, diese Frage ist nicht sehr klar ... Können Sie es als separate Frage mit dem entsprechenden Code zur Verfügung stellen (und einen Kommentar hier mit Link zu diesem setzen)? – Ognyan
Nachdem Sie Ihre Antwort und einen Blog gelesen haben, habe ich herausgefunden, was in meinem Code falsch ist. Ich habe keinen leeren Konstruktor in der Abhängigkeiten-Klasse hinzugefügt, vorher dachte ich, dass alle Abhängigkeiten in Modulen definiert werden müssen ... Bin ein wenig vertraut mit Dolch .. Danke nochmal! –