如何使用Dagger2注入嵌套类

问题描述 投票:0回答: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创建对象

android dagger-2
2个回答
1
投票

Dagger在logcat中告诉我们,内部类不支持@Inject构造函数:

错误:@Inject构造函数在内部类上无效public ParentSubClass()

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

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.