Да кажем, че имам дейност като тази:
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...
}
Сега да кажем, че имам модул dagger, който дефинирам да инжектира 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 - кой се избира?