我有两个Guice模块,每个模块在同一个界面上执行@Provides。每个都独立运行就好了。
现在我有一个想要引入这两个模块的第3个模块。我希望第3个模块的@Provides胜过其他模块,这似乎是Modules.override的理想选择。确实,这很有效。
Modules.override(childModule1).with(parent);
父母胜过孩子的约束力。太好了!
然而,这失败了:(。
Modules.override(childModule1, childModule2).with(parent);
在这种情况下,它抱怨与Foo的绑定被childModule2“绑定”了。看起来覆盖只有在有一个子模块进行提供时才有效。是否有一些我错过了这项工作?
答案 0 :(得分:1)
我找到了一个解决方案,虽然它似乎坚定地在黑客类别中。我不得不筑巢。
Modules.override(Modules.override(childModule1).with(childModule2)).with(parent);