0
如果我有一個接口IBaseFunction和這個接口的多個實現。 我如何可以遍歷綁定拜訪每一個方法,即Guice遍歷多個綁定
public class MyModule extends AbstractModule {
@Override
protected void configure() {
bind(IBaseFunction.class).annotatedWith(ExDelete.class).to(ExDeleteFunction.class);
bind(IBaseFunction.class).annotatedWith(ExAdd.class).to(ExAddFunction.class);
...
}
}
我需要在每個綁定調用一個函數「發佈()(使總線上可用的處理器)
我可以打電話在每個單獨的功能結合這樣的: -
ExDeleteFunction functionExDelete = injector.getInstance(ExDeleteFunction.class);
ExDeleteFunction.publish();
ExAddFunction functionExAdd = injector.getInstance(ExAddFunction.class);
ExAddFunction.publish();
不過,我想需要做的就是遍歷這些,並呼籲所有的人的「發佈」的功能是什麼,有沒有這樣做的一種方式? 也許使用injector.getAllBindings()?像這樣的東西: -
Injector injector = Guice.createInjector(new ServicesModule());
Map<Key<?>, Binding<?>> bindings = injector.getAllBindings();
for (Binding<?> binding : bindings.values()) {
Key<?> key = binding.getKey();
...??
還是有一個更簡單的方法?