2012-02-17 106 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