複数回バインドされているインターフェイスのすべてのプロバイダーがモジュールによって正しくインスタンス化されているかどうかをテストしようとしています。モジュールにバインドするには、Google Guice v3 で Multibinder を使用します。
特定のインターフェイス/クラスのすべての (複数の) プロバイダーを返すメソッドが見つかりませんでした。getProvider() を使用すると、1 つのプロバイダーのみが返されます。
誰かがその問題に対するエレガントな解決策を持っていますか?
複数回バインドされているインターフェイスのすべてのプロバイダーがモジュールによって正しくインスタンス化されているかどうかをテストしようとしています。モジュールにバインドするには、Google Guice v3 で Multibinder を使用します。
特定のインターフェイス/クラスのすべての (複数の) プロバイダーを返すメソッドが見つかりませんでした。getProvider() を使用すると、1 つのプロバイダーのみが返されます。
誰かがその問題に対するエレガントな解決策を持っていますか?
1 つのオプションは、インジェクターからのすべてのバインドを反復し、期待されるインターフェイスに一致するものを確認することです。
@Inject void checkBindings(Injector injector){
for(Binding<?> rawbinding : injector.getBindings().values()){
if (rawbinding instanceof BindingImpl){
BindingImpl<?> binding = (BindingImpl<?>)rawbinding;
if (binding.getKey().getTypeLiteral().getRawType() == MyInterface.class){
...