2016-03-24 6 views
0

Ich habe zwei Guice-Module, die jeweils eine @Provides auf der gleichen Schnittstelle tun. Jeder läuft unabhängig gut.Guice-Module.override bei Bindung in mehreren Modulen angegeben?

Jetzt habe ich ein drittes Modul, das diese beiden einbringen will. Ich möchte, dass die @Provides des dritten Moduls die anderen übertrumpfen, was für Modules.override ideal erscheint. In der Tat, das funktioniert.

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

Der Elternteil übertrumpft die Bindung des Kindes. Groß!

Dies ist jedoch nicht :(.

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

In diesem Fall ist es beklagt, dass zu Foo eine Bindung wurde durch den childModule2 „bereits gebunden“. Wie Überschreibung Sieht funktioniert nur, wenn es ein Modul ist das zu tun bereitstellt. gibt es etwas, was ich verpasst habe, diese Arbeit zu machen?

Antwort

1

ich eine Lösung herausgefunden, obwohl es fest in der Hack Kategorie scheint. ich nisten hatten die overides.

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