Android 如何在方法中注入依赖项?
我是依赖注入的初学者。。特别是匕首2。我正在试图弄清楚我是否/如何能做这样的事情:Android 如何在方法中注入依赖项?,android,dagger-2,Android,Dagger 2,我是依赖注入的初学者。。特别是匕首2。我正在试图弄清楚我是否/如何能做这样的事情: @Inject public void someMethodName(int someInteger, SomeObject dependency){ // do something with the dependency. } 或者我需要将该依赖项作为类变量放入吗?在此方面的任何帮助都将不胜感激。在这种情况下,变量someInteger不是依赖项,而是由调用方添加的。。。那有关系吗 我可以这样称呼它吗:
@Inject
public void someMethodName(int someInteger, SomeObject dependency){
// do something with the dependency.
}
或者我需要将该依赖项作为类变量放入吗?在此方面的任何帮助都将不胜感激。在这种情况下,变量someInteger不是依赖项,而是由调用方添加的。。。那有关系吗
我可以这样称呼它吗:
this.someMethodName(5);
android studio不喜欢上面的调用方法(我假设是因为我做错了)您可以使用一些接口
public interface myDependence{
int myFunction(int value);
}
现在在您的课堂上实施
public myClass implements MyDependence{
@Override
int myFunction(int value){
// do something
}
}
@Singleton
@Component(modules = DemoApplicationModule.class)
public interface ApplicationComponent {
void inject(DemoApplication application);
}
我们使用单注入方法创建ApplicationComponent。我们要说的是,我们希望在DemoApplication中注入某些依赖项
此外,在@Component
注释中,我们使用供应方法指定模块
这就像我们的模块看起来像:
@Module
public class DemoApplicationModule {
private final Application application;
public DemoApplicationModule(Application application) {
this.application = application;
}
@Provides @Singleton SomeIntegerHandler provideIntegerHandler() {
return new MySomeIntegerHandlerImpl();
}
}
通过创建DemoApplicationModule,我们要说的是,该模块可以在组件指定的注入位置提供所需的依赖项
public class DemoApplication extends Application {
private ApplicationComponent applicationComponent;
@Inject SomeIntegerHandler handler;
@Override public void onCreate() {
super.onCreate();
applicationComponent = DaggerApplicationComponent.builder()
.demoApplicationModule(new DemoApplicationModule(this))
.build();
applicationComponent.inject(this);
handler.someMethodName(5);
}
}
请参阅文档,了解可以获得哪些依赖项。除了获取原始实例之外,您还可以获取原始实例。
您还可以创建作用域Dependenci,其生命周期取决于注入位置的生命周期,如
希望我给了你匕首的基本概念