假设我有一个类Util,它接受一个对象 - 类Validator的一个实例.
因为我想避免在Util中实例化Validator类,所以我通过构造函数传递它:
public class Util {
@Inject
public Util(Validator validator) {
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个提供Validator实例的模块:
@Provides
@Singleton
Validator provideValidator() {
return Validator.getInstance();
}
Run Code Online (Sandbox Code Playgroud)
和Util类的一个实例:
@Provides
Util provideUtil(Validator validator) {
return new Util(validator);
}
Run Code Online (Sandbox Code Playgroud)
我有一个组件连线,它会给我一个Util的实例:
Util getUtil()
Run Code Online (Sandbox Code Playgroud)
所以在我的活动中,我可以称之为:
Util myUtil = getComponent.getUtil();
Run Code Online (Sandbox Code Playgroud)
所有这些都可以正常工作 - myUtil在实例化时有一个适当的Validator类实例.
现在我想传入一个名为address的String变量(通过UI输入用户).我想更改构造函数,所以我传入Validator的实例和用户输入的String:
@Inject
public Util(Validator validator, String address) {
}
Run Code Online (Sandbox Code Playgroud)
我无法理解如何传递第二个参数.谁能告诉我怎么样?
理想情况下,我想实例化Util,如:
Util myUtil = getComponent.getUtil(txtAddress.getText());
Run Code Online (Sandbox Code Playgroud)