我正在开发Android应用程序。我正在使用Dagger2进行依赖注入。我能够使用这个库,但我不知道如何注入嵌套类。
public class Parent {
@Inject
public Parent()
{}
public String getParent() {
return "fifth";
}
class ParentSubClass{
@Inject
public ParentSubClass(){
}
public String getParentSubClass(){
return "subfifth";
}
}
}
class SomeTest{
@Inject
Parent.ParentSubClass subclass;
}
我知道注入父类但是如何为parentsubclass创建对象
Dagger在logcat中告诉我们,内部类不支持@Inject
构造函数:
错误:@Inject构造函数在内部类上无效public ParentSubClass()
如果您想提供内部课程,则应使用@Provides
方法提供:
@Provides
internal fun provideSubclass() : ParentSubClass {
return Parent().ParentSubClass()
}
示例中的嵌套类可以访问其所有父属性,因此您可以在父级中注入所需的所有依赖项,然后再使用子类中的那些依赖项。