Ich lerne dagger2
Abhängigkeitsinjektionsrahmen. Ich liebte es, wie es Abhängigkeit einbringt. Ich lese diesen Artikel https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2 Ich sehe dort, sie erklärten dies mit Hilfe von zwei Modules
.Wie eine Instanz unseres Abhängigkeitsgraphen in Dagger2 zu instanziieren
AppModule
& NetModule
sind die beiden Modules
. Beide hat Konstrukteure, so dass sie instanziiert eine Instanz unseres Abhängigkeitsgraphen wie diese
mNetComponent = DaggerNetComponent.builder()
// list of modules that are part of this component need to be created here too
.appModule(new AppModule(this)) // This also corresponds to the name of your module: %component_name%Module
.netModule(new NetModule("https://api.github.com"))
.build();
Angenommen, ich habe ein mehr Modules
, die einen Konstruktor haben nicht dann, wie würde ich es initialisieren, wie andere 2 Module Werte im Konstruktor brauchen ?
Dank
Ich benutze die neueste Version von Dolch, es sagt '.appModule (neues AppModule (this)) .netModule (neues NetModule (" "))' ist veraltet –
@Williams Diese Warnung wird generiert, wenn Dagger2 Ihr Modul bauen kann selbst. Wenn Ihre Klasse mit '@ Module' versehen ist, wenn alle Abhängigkeiten erfüllt sind (für sich selbst, andere Module derselben Komponente oder andere Komponenten, die als Abhängigkeiten in der übergeordneten Komponente aufgelistet sind) und der Standard oder öffentliche no-arg Konstruktor hat, kann Dagger das Modul ohne manuelle Bereitstellung instanziieren (Aufruf von '.someModule (new SomeModule()' ist redundant) –
In meinem Fall habe ich einen Argumentkonstruktor in beiden Modulen, warum es immer noch eine Warnung gibt –