2012-02-17 25 views
0

如果我聲明瞭一個方法:吉斯:注塑和編譯器

公共停車場makeCar(@Named( 「carClassName」)字符串carClassName){// ... }

看來,編譯器(eclipse)不高興(即它不會讓我調用沒有參數的類)。

當我動態調用此方法時,如何注入這些參數?有沒有辦法給方法注入呼叫?

回答

1

解決方案1:在呼叫者插入carClassName,

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

解決方案2:使用一個工廠,

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

並注入它在需要的地方。

+1

換句話說:Guice不會影響編譯時語法規則 - 相反,它會在運行時更改項目的值.....有趣的是,有時我會忘記這一點。感謝您的提醒 – jayunit100 2012-02-19 02:08:13