Как ввести только одну переменную, используя guice? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть класс что-то вроде этого:

public class Person {
    private final Object1 object1;  //taking this as constructor parameter
    private final Object2 object2;  //want to inject only this?

    @Inject
    public Person(final Object1 object1) {
        this.object1 = object1;
    }
}

Допустим, я хочу конструктор, который принимает только object1 в параметрах, и я хочу внедрить object2? Как мне этого добиться?

1 Ответ

0 голосов
/ 24 апреля 2020

Вы можете вводить только в один ctor.

Но вы можете использовать фабрику. Посмотрите на это

https://google.github.io/guice/api-docs/3.0/javadoc/com/google/inject/assistedinject/FactoryModuleBuilder.html

В зависимости от аргумента (@Assisted Object1 / Object2), который вы выбираете для прохождения через фабрику, он будет делегирован соответствующему конструктору .

...