Скажем, у меня есть класс Util, который принимает объект - экземпляр класса Validator.
Поскольку я хочу избежать создания экземпляра класса Validator в Util, я передаю его через конструктор:
public class Util {
@Inject
public Util(Validator validator) {
}
}
У меня есть модуль, который обеспечивает экземпляр Validator:
@Provides
@Singleton
Validator provideValidator() {
return Validator.getInstance();
}
и экземпляр класса Util:
@Provides
Util provideUtil(Validator validator) {
return new Util(validator);
}
У меня подключен компонент, который даст мне экземпляр Util:
Util getUtil()
поэтому в рамках своей деятельности я мог бы назвать это так:
Util myUtil = getComponent.getUtil();
Все это прекрасно работает - у myUtil есть соответствующий экземпляр класса Validator при создании экземпляра.
Теперь я хочу передать строковую переменную с именем address (которая вводится пользователем через пользовательский интерфейс). Я хочу изменить конструктор, чтобы передать как экземпляр Validator, так и введенную пользователем строку:
@Inject
public Util(Validator validator, String address) {
}
Я просто не могу понять, как передать этот второй параметр. Может кто-нибудь сказать мне, как?
В идеале я хочу создать Util как:
Util myUtil = getComponent.getUtil(txtAddress.getText());