2012-07-05 61 views
1

我試圖測試一個接口的綁定多次的所有提供者是否都被我的模塊正確實例化。爲了綁定我的模塊,我在Google Guice v3中使用了Multibinder。在Guice中請求所有提供者綁定接口

我找不到一個方法,它將特定接口/類的所有(多個)提供程序返回給我。使用getProvider()只返回一個Provider。

有沒有人有這個問題的優雅解決方案?

回答

0

一種選擇是迭代Injector的所有綁定,並檢查那些符合預期接口的綁定。

@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){ 
     ... 
相關問題