有什么方法可以确定哪些类型与实现Module
接口或扩展类的类中的绑定器绑定AbstractModule
。我需要实现一个辅助方法,它将某些类型与活页夹绑定,但该方法必须绑定的某些类型可能已经与活页夹绑定。有谁知道当同一类型与活页夹多次绑定时会发生什么?
当类型绑定为单例时呢?
有什么方法可以确定哪些类型与实现Module
接口或扩展类的类中的绑定器绑定AbstractModule
。我需要实现一个辅助方法,它将某些类型与活页夹绑定,但该方法必须绑定的某些类型可能已经与活页夹绑定。有谁知道当同一类型与活页夹多次绑定时会发生什么?
当类型绑定为单例时呢?
更喜欢使用帮助器来构建模块列表,而不是使用帮助器来绑定自身。
之后,您可以使用“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;
问候!