Джин странное поведение в проекте Gwt - PullRequest
0 голосов
/ 14 июня 2011

По какой-то необъяснимой для меня причине Джин не работает так, как я собираюсь. Позвольте мне объяснить с небольшим кодом.

Допустим, у меня есть форма A

@Singleton
public class formA extends Composite

    private final MyGinjector ginjector;

    @Inject
    public formA(MyGinjector ginjector)
    {
      this.ginjector = ginjector;
      this.add(ginjector.getFormB());
      this.add(ginjector.getFormC());   
    }

здесь есть и formB и formC (предположим, что formB и formC имеют похожий код)

@Singleton
public class formB extends Composite
{
@Inject
public formB(MyGinjector ginjector)
{
  this.ginjector = ginjector;
..............
}
}

И проблема, с которой я столкнулся, в какой-то момент, когда я внедряю formA (ginjector.getFormA () возвращает экземпляр formA, но с отсутствующими childWidgets, что означает отсутствие ссылки на formB и formC

В чем может быть проблема? все формы одноэлементные ... вероятно, я не должен вводить ginjector, как это?

Спасибо

1 Ответ

0 голосов
/ 14 июня 2011

Я полагаю, что джин не поддерживает инъекцию инжектора: обсуждение групп джина .

Есть ли причина, по которой вы пытаетесь ввести инъектор вместо прямой инъекции зависимостей?

Выследует просто ввести зависимости напрямую:

    @Inject
    public formA(FormB formB, FormC formC){
...