如何使用Dagger2注入嵌套类

时间:2018-03-05 13:14:04

标签: android dagger-2

我正在开发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创建对象

2 个答案:

答案 0 :(得分:1)

内部类不支持

@Inject构造函数,正如Dagger在logcat中告诉我们的那样:

  

错误:@Inject构造函数对内部类public ParentSubClass()

无效

如果您想提供内部课程,则应使用@Provides方法提供:

@Provides
internal fun provideSubclass() : ParentSubClass {
    return Parent().ParentSubClass()
}

答案 1 :(得分:0)

示例中的嵌套类可以访问其所有父属性,因此您可以在父级中注入所需的所有依赖项,然后再使用子类中的那些依赖项。