2016-05-07 2 views
1

Есть ли способ проверить, существует ли реализация для интерфейса?Guice Binder hasBind function

Например, метод «hasBind» ниже не существует:

public class MyModule extends AbstractModule { 
    @Override 
    protected void configure() { 
     // do something like this: 
     if (!hasBind(SomeInterface.class)) { 
      bind(SomeInterface.class).to(MyOtherSomeInterface.class); 
     } 
    } 
} 

ответ

0

Поскольку порядок прикладных модулей не имеет значения в Guice, вы не можете обнаружить, если привязка существует до того, как форсунка была создана, см this post.

Предлагаемое решение состоит в том, чтобы создать исходный модуль со стандартными привязками и использовать Modules.overwrite для применения дополнительных привязок ypur.

Смежные вопросы