Вопрос рекурсии провайдера - PullRequest
0 голосов
/ 01 марта 2011

Итак, у меня есть класс Bar, который должен содержать фабрику Баров.

class Bar {
    Collection<Bar> children;
    Bar(BarFactory factory, Foo1 foo, Foo2 foo2){

    }
    addChild(Foo1 foo1){
         children.add(factory.create(foo1));
    }
}
class BarFactory {
    Bar create(Foo1 foo1);
}

Проблема в описании BarFactory. Есть специфическая логика с зависимостями от других объектов. Я пытался использовать механизм @Provides, как

@Provides
BarFactory provideLogicElementPresenterFactory(Dependence d){
    final BarFactory f = new BarFactory(){  
        @Override
        public Bar create(Foo1 foo1) {
            Foo2 foo2 = null;//some logic
            return new Bar(/*how pass factory here?*/f, foo1, foo2);
        }
    };
    return f;
}

Как описать такую ​​рекурсивную структуру или есть альтернативное решение этой проблемы?

1 Ответ

3 голосов
/ 01 марта 2011

Используйте this вместо f in при вызове конструктора Bar.

...