2017-08-25 7 views
1

I はGoogle Guiceフレームワークに問題があります。Google Guiceのコンフィグレーションエラー(実装されていません)

私は、というオブジェクトのリストを注入する単純なアプリケーションを作成しようとしています。残念ながら、アプリケーションを実行しようとすると、次のエラーが発生します。

java.util.Listの実装がバインドされていません。ここで オペレータを見つけながらOperator.carShops(Operator.java:17) でフィールドにjava.util.Listの を見つけながら、()

は、プログラムコードです:

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); 
     } 
}} 

を助けてください

答えて

1

モジュールの依存関係を登録していないようです。 Guiceにインターフェイスの入力を求めるときに使用するクラスを教えてください。 CarShopImplCarShopインタフェースのための特定の実装である

import com.google.inject.AbstractModule; 

public class SimpleModule extends AbstractModule { 

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

CarShopImplクラスの開始があるべき、のは、言ってみましょう:

public class CarShopImpl implements CarShop { 

    // Implementation 
} 
+0

私はインターフェイスを持っていない場合、私はそれを作成する必要があることを意味し? – Line

+1

ライン:確かに... –

関連する問題