有没有办法确定哪些类型与实现Module
接口的类中的绑定器绑定或扩展AbstractModule
类。我需要实现一个帮助器方法,它将某些类型与绑定器绑定,但此方法必须绑定的某些类型可能已经绑定到绑定器。有人知道当同一类型多次与活页夹绑定时会发生什么?
何时将类型绑定为单例?
答案 0 :(得分:1)
更喜欢使用帮助程序来构建模块列表,而不是帮助绑定自己。
之后,您可以使用“Modules.combine(listOfModules)”函数删除重复模块定义:
Guice.createInjector(Modules.combine(listOfModules));
或者,当您构建“listOfModules”时,可以在将模块添加到列表中之前测试模块是否存在:
for (AbstractModule item : listOfModules) {
if (moduleToAdd.getClass().isAssignableFrom(item.getClass())) {
return listOfModules;
}
}
modules.add(moduleToAdd);
return listOfModules;
问候!