2017-08-25 2 views
1

I haben ein Problem mit dem Google Guice-Framework.Google Guice-Konfigurationsfehler (keine Implementierung wurde gebunden)

Ich versuche, eine einfache Anwendung zu erstellen, die eine Liste der Objekte injiziert. Beim Versuch, eine Anwendung auszuführen, erhalte ich leider den folgenden Fehler.

Keine Implementierung für java.util.List wurde gebunden. während java.util.List für das Feld bei Operator.carShops (Operator.java:17) Ortung während Operator Ortung()

Hier ist der Programmcode:

public class Main { 
public static void main(String[] args) { 
     Injector injector = Guice.createInjector(); 
     Operator operator = injector.getInstance(Operator.class); 

     operator.prepareData(); 
}} 



public class Operator implements IOperator { 
@Inject 
private List<CarShop> carShops; 

public List<CarShop> getCarShops() { 
    return carShops;        <--- Place of error occurrence 
} 

public void setCarShop(List<CarShop> carShops) { 
    this.carShops = carShops; 
} 

public void prepareData() { 
    for(CarShop carShop:carShops) 
     for(int i=0;i<10;i++) { 
      Car car = new Car(); 
      car.setPrice(1000);  
      carShop.addCar(car); 
     } 
}} 

Bitte helfen

Antwort

1

Es scheint, dass Ihr Modul keine Abhängigkeiten registriert. Sie müssen Guice mitteilen, welche Klasse verwendet wird, wenn nach einer Schnittstelle gefragt wird.

import com.google.inject.AbstractModule; 

public class SimpleModule extends AbstractModule { 

    @Override 
    protected void configure() { 
     bind(CarShop.class).to(CarShopImpl.class); 
    } 
} 

Wo CarShopImpl für CarShop Schnittstelle eine spezielle Implementierung ist.

sagen lassen, der Beginn der CarShopImpl Klasse sollte sein:

public class CarShopImpl implements CarShop { 

    // Implementation 
} 
+0

Das heißt, wenn ich Schnittstelle nicht haben, ich brauche es zu schaffen? – Line

+1

Linie: Tatsächlich ... –

Verwandte Themen