Frage

Wir bewerten mit GIN im GWT-Projekt und verfügen über gute Ergebnisse mit typischer Injektion über Konstruktor-Argumente.Die Sache, mit der wir Schwierigkeiten hatten, ist die Injektion von Feldebene.Die Felder sind immer null.Hat jemand ein gutes Beispiel dafür, wie man mit Gin ordnungsgemäß eingereichtes Fleckeninjektion erzielt?

update:

Hier ist ein Beispielcode, der unserem ähnlich ist: generasacodicetagpre.

Im obigen Code habe ich den größten Teil des Codes entfernt, der kein GIN beinhaltet.Der TestPresenter, dass das DetailPresenter verlangt, ist erfolgreich injiziert, aber der HandlerManager, den der TestPresenter benötigt, ist immer null.Wie Sie sehen, wird der injizierte Handlermanager nicht im Konstruktor verwendet.

War es hilfreich?

Lösung

Update, Blick auf Beispielcode: generasacodicetagpre.

weil Sie es selbst erstellen, wird davon ausgegangen, dass Sie mit Injektionen behandelt haben. Entfernen Sie diese Methode, und es wird den Standardkonstruktor (bei Bedarf dort injizieren) auf, und besuchen Sie dann eine andere Injektionsstelle.

Eine andere Ausgabe, in die Sie ausgeführt werden könnten: Es gibt mehrere Handlermanager-Impls, sorgen Sie, dass alle Ihre Referenzen auf HandlerManager dasselbe Paket verwenden.


Originalantwort:

Sie werden null, wenn der Konstruktor läuft, aber dies ist sinnvoll - wie könnten sie einen anderen Wert sein, wenn der Injektor nicht die Chance hatte, alle Felder noch nicht zuzuweisen. Überlegen Sie, wie dies möglich wäre (hier als fraglich legale Java ausgedrückt, als Felder möglicherweise nicht öffentlich sein): generasacodicetagpre.

Mit der Zeit, in der das Feld sogar zugewiesen ist, ist Ihr Konstruktor bereits ausgeführt.

Wenn das Feld null ist, wenn ein anderes Verfahren ausgeführt wird, stellen Sie sicher, dass das Verfahren nicht von dem Konstruktor ausgeführt wird. Andere Fälle, in denen es noch NULL sein kann, wäre generakodicetagcode kommentierte Setter.

vorausgesetzt, es handelt sich nicht um diesen Fällen (der einfachste Weg t an eine Null-Instanz gebunden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top