我知道有关于如何使用if ((2*x) == n){
定义单例的教程。但是我的问题不是真的。我的意思是Dagger还提供了一种方法,该方法可通过注释该类的空构造函数而不在Module
中声明任何内容来使该类可注入Android组件,对吗?例如
Module
因此,我可以通过以下方式将public class MyApi {
@Inject
public MyApi(){
}
}
注入到MyApi
中:
Fragment
通过这种方式,无需在class MyFragment extends Fragment {
@Inject
protected MyApi myApi;
...
}
中手动声明MyApi
。匕首明白了。
我的问题是,如果我想让Module
是单身人士,我是否可以再添加一个像这样的注释:
MyApi
匕首会理解应该是单身吗?还是我必须在public class MyApi {
@Inject
@Singleton
public MyApi(){
}
}
中声明,例如:
Module
?
答案 0 :(得分:1)
首先,在课程顶部添加@Singleton
。
@Singleton
public class MyApi {
@Inject
public MyApi() {}
}
第二,您需要在@Singleton
界面顶部添加component
。
@Singleton
@Component
interface AppComponent {
如果您对此感兴趣,可以在Kotlin中找到完整的指南:https://medium.com/@xiwei/simplest-dagger-example-920bbd10258
答案 1 :(得分:0)
对于所需的行为,您需要在类而不是构造函数上应用注释。看看:
@Singleton
public class MyApi {
@Inject
public MyApi(){
}
}