Из кинжала 2 Документация Я заметил, что вы можете иметь аннотированный класс @Singleton
. Какова цель маркировки класса как @Singleton
, поскольку я попытался сделать это в своем коде, но одноэлементный объект НЕ производится. Я не понимаю, что используется для обозначения моего класса с помощью этой аннотации.
Из документации, пожалуйста, сосредоточьтесь на следующем утверждении:
Аннотация @Singleton на инъекционном классе также служит документация. Он напоминает потенциальным сопровождающим, что этот класс может быть разделяемый несколькими потоками. *
@Singleton
class CoffeeMaker {
...
}
ОБНОВЛЕНИЕ: после просмотра ответа froger_mcs я вижу, что в кинжале 2 вы можете вводить инъекции либо модулем ИЛИ путем инъекции конструктора. Таким образом, следующий класс, хотя и не в модуле, может быть введен:
@Singleton
public class MyClass {
@Inject
public MyClass() {
}
}
В этой версии конструктор вводится для нас и в Android-активности вы просто делаете следующее, и оно будет предоставлено:
@Inject
MyClass myClass;
//then in onCreate actually inject(this) from your graph of course.