gpt4 book ai didi

java - Guice Modules.override 在多个模块中指定的绑定(bind)?

转载 作者:行者123 更新时间:2023-12-01 10:09:41 25 4
gpt4 key购买 nike

我有两个 Guice 模块,每个模块在同一接口(interface)上执行 @Provides 操作。每个独立运行都很好。

现在我有第三个模块想要引入这两个模块。我希望第三个模块的 @Provides 胜过其他模块,这对于 Modules.override 来说似乎是理想的选择。确实,这有效。

Modules.override(childModule1).with(parent);

父级的绑定(bind)胜过子级的绑定(bind)。太棒了!

然而,这失败了:(。

Modules.override(childModule1, childModule2).with(parent);

在这种情况下,它会提示对 Foo 的绑定(bind)已被 childModule2“绑定(bind)”。看起来重写只有在有一个子模块进行提供时才有效。为了让这项工作成功,我是否遗漏了一些东西?

最佳答案

我找到了一个解决方案,尽管它似乎完全属于黑客类别。我必须嵌套覆盖。

Modules.override(Modules.override(childModule1).with(childModule2)).with(parent);

关于java - Guice Modules.override 在多个模块中指定的绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36209925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com