Ein kleines Beispiel für ein Modul, das eine Klasse Foo
injiziert:Mit @Singleton ohne @Provides in Dolch
@Module(complete = false, injects = { Foo.class })
class MyModule { }
class Foo {
@Inject
Foo(Bar bar, Baz baz) { }
}
(unter der Annahme, dass Bar
und Baz
von einem anderen Modul zur Verfügung gestellt werden)
Ich mag jetzt Foo
um ein Singleton zu sein.
Ich könnte eine @Provides
Methode hinzufügen und mit Anmerkungen versehen es mit @Singleton
...
@Module(complete = false, injects = { Foo.class })
class MyModule {
@Provides @Singleton Foo provideFoo(Bar bar, Baz baz) {
return new Foo(bar, baz);
}
}
... aber mit diesem Konstruktor Aufruf schreiben ich besiegt Art von dem Zweck einer Injektion Rahmen verwendet wird. Gibt es einen kürzeren Weg, dies zu erreichen?
Ah, ich habe die Dokumentation falsch gelesen - ich habe auf den Ausdruck "dient als Dokumentation" geklammert, also nahm ich an, dass @Singleton auf einer Klasse keine praktische Wirkung hat, vernachlässige den ersten Satz in diesem Abschnitt zu lesen . –
Gibt es hier Änderungen für Dagger2? –