2012-02-17 12 views
0

Guiceの:私はメソッド宣言した場合はインジェクションとコンパイラ

パブリックカーmakeCar(@Named( "carClassName")文字列carClassName){// ... }

をそれはと思われますコンパイラ(eclipse)は不幸です(つまり、引数なしでクラスを呼び出せません)。

このメソッドを動的に呼び出すと、これらのパラメータをどのように注入できますか?メソッドへの呼び出しを挿入する方法はありますか?

答えて

1

溶液1:工場を使用

class CarFactory {  
    private @Named("carClassName") String carClassName); 
    public Car create() { 
    return makeCar(carClassName); 
    } 
} 

及び必要な場合にそれを注入:発信者にcarClassName、

class Whatever { 
    private @Named("carClassName") String carClassName); 
    public void dosomething() { 
     ... 
     Cat cat = makeCar(carclassName); 
     ... 
    } 
} 

溶液2を挿入します。

+1

言い換えれば、Guiceはコンパイル時の構文規則に影響を与えません。実行時に項目の値を変更します。念押し有難う – jayunit100

関連する問題