2016-03-24 8 views
0

私は2つのGuiceモジュールを持っていて、それぞれが@Providesを同じインターフェース上に持っています。それぞれ独立して動作します。複数のモジュールで指定されたバインディングでGuice Modules.override?

今、私はそれらの両方を持ち込みたい第3のモジュールを持っています。私は3番目のモジュールの@Providesが他のものに勝つことを望んでいます。これはModules.overrideにとって理想的です。確かに、これは動作します。

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

親は子のバインディングよりも優先されます。すばらしいです!

これは、しかし、失敗した:(。その場合には

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

は、それがfooへの結合はchildModule2で「すでにバインド」されたことを文句を言います。オーバーライドのように見えるやって1つのサブモジュールがあります場合にのみ機能しますそれはしっかりとハックカテゴリに思えるのに。私はこの仕事をするために見逃している何かがありますか?

答えて

1

提供私は、解決策を考え出した。私は巣にoveridesを持っていた。

Modules.override(Modules.override(childModule1).with(childModule2)).with(parent); 
関連する問題