2016-05-07 6 views
1

Gibt es eine Möglichkeit zu überprüfen, ob eine Implementierung für eine Schnittstelle existiert?Guice Binder hasBind Funktionalität

Zum Beispiel die Methode „hasBind“ unten existiert nicht:

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

Antwort

0

Da die Reihenfolge der angewandten Module nicht in guice Materie, kann man nicht erkennen, ob eine Bindung existiert, bevor der Injektor erstellt wurde, finden this post.

Die vorgeschlagene Lösung besteht darin, ein Startmodul mit Standardbindungen zu erstellen und Modules.overwrite zu verwenden, um zusätzliche Bindings anzuwenden.