Guice: инъекция и компилятор - PullRequest
0 голосов
/ 18 февраля 2012

Если я объявлю метод:

public Car makeCar (@Named ("carClassName") Строка carClassName) { // ... }

Кажется, что компилятор (eclipse) недоволен (то есть он не позволяет мне вызывать класс без аргументов).

Как я могу ввести эти параметры при динамическом вызове этого метода? Есть ли способ ввести вызов метода?

1 Ответ

1 голос
/ 18 февраля 2012

Решение 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);
  }
}

и введите ее, где необходимо.

...