Android Dagger - Modules without no-args constructor

How to combine modules without the no-args constructor. I have a library containing several modules that I want to reuse in my applications. However, some parameters are required for these modules. The following example describes my installation:

Library:

@Module(
    library = true
)
public class LibModule1 {

    private final String mString;

    public LibModule1(String string) {
        mString = string;
    }
    //... provide methods 
}

@Module(
    library = true,
    addsTo = LibraryModule1.class
)
public class LibModule2 {

    private final String mString;

    public LibModule2(String string) {
        mString = string;
    }
    //... provide methods 
}

Note that LibModule2 depends on some of the provided objects from LibModule1.

: LibModule1 LibModule2 . , . includes , no-args. addsTo , , . , MyClass.class, ( , ?!).

@Module(
    injects = MyClass.class
)
public class AppModule {

}

?

+3
2

ObjectGraph.create() graph.plus(). , , :

ObjectGraph graph = 
    ObjectGraph.create(new LibraryModule1("foo"), LibraryModule2("bar));

, , , , ( -). LibModule2 LibModule1, , , , .

@Module(library = true)
public class LibModule1 {

  private final String mString;

  public LibModule1(String string) {
    mString = string;
  }
  //... provide methods 
}

@Module(includes = LibraryModule1.class)
public class LibModule2 {

  private final String mString;

  public LibModule2(String string) {
    mString = string;
  }
  //... provide methods 
}

complete = false , , . full = false , , , , , .

, , LibModule2 LibModule1. LibModule1 LibModule2.

complete = , . , . , no-args.

= true, , graph.get(Foo.class) . , = .

+4

, - . .

: .

@Module(
    injects = MyClass.class,
    includes = {LibModule1.class, LibModule2.class}
)
public class AppModule {

}

complete = false.

-1

All Articles