Допустим, у меня есть такая деятельность:
public class ListBlogsActivity extends Activity {
@Inject ObjectMapper mapper;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Put Dagger into action
ObjectGraph.create(new ListBlogsModule()).inject(this); //Dagger
//do a bunch of other things etc...
}
Теперь предположим, что у меня есть модуль кинжала, который я определяю для внедрения ObjectMapper в активность следующим образом:
@Module(injects = ListBlogsActivity.class)
public class ListBlogsModule {
@Provides ObjectMapper objectMapper() {
ObjectMapper mapper = new ObjectMapper();
//do some more stuff ..blah blah
return mapper;
}
}
Теперь вот мой ключевой вопрос:
скажем, у меня есть другой модуль, который мы определяем для внедрения в ту же активность ObjectMapper:
@Module(injects = ListBlogsActivity.class)
public class ListBlogs2Module {
@Provides ObjectMapper objectMapper2() {
ObjectMapper mapper = new ObjectMapper();
//do some more stuff ..blah blah
return mapper;
}
}
Что произойдет, как dagger будет различать это, поскольку у меня есть два модуля, которые обеспечивают инъекцию типа sdame ObjectMapper - какой из них будет выбран?