Use NameAllocator to avoid local/field name collisions.
Author: christopherperryCreated Mar 14, 2014Updated Dec 26, 2015
The following causes Dagger to compile incorrectly.
@Module(
injects = SomeClass.class
)
public static class MyModule {
@Provides InjectedClass provideInjectedClass() {
return new InjectedClass();
}
}
public static class SomeClass {
@Inject InjectedClass object; // Problem is with variable name
}
public static class InjectedClass {}
@Test
public void dagger_shouldInject() {
ObjectGraph objectGraph = ObjectGraph.create(new MyModule());
SomeClass someClass = new SomeClass();
objectGraph.inject(someClass);
assertThat(someClass.object).isNotNull();
}Source: square/dagger