Java 使用Guice在方法内部创建对象的正确方法是什么
使用Guice在单例对象的方法内部创建对象的正确方法是什么 如果我有下面这样的代码,那么创建Class2实例的正确方法是什么? Class1是单例的,每次调用search时都需要创建Class2的一个新实例(所以我不能将它注入构造函数字段…),如果需要,我将重新组织代码Java 使用Guice在方法内部创建对象的正确方法是什么,java,guice,Java,Guice,使用Guice在单例对象的方法内部创建对象的正确方法是什么 如果我有下面这样的代码,那么创建Class2实例的正确方法是什么? Class1是单例的,每次调用search时都需要创建Class2的一个新实例(所以我不能将它注入构造函数字段…),如果需要,我将重新组织代码 @Singleton final class Class1 { @Inject private Class1(...){...} public Class2 search(...){ Class2 newInstanc
@Singleton
final class Class1 {
@Inject
private Class1(...){...}
public Class2 search(...){
Class2 newInstance=...
return newInstance;
}
}
我想我找到了。
需要为此类实例使用提供程序。
在构造函数中获取类提供程序,并使用provider.get获取实例
比如:
@Singleton
final class Class1 {
Provider<Class2> p;
@Inject
private Class1(Provider<Class2> pParam;...){
p=pParam;
...
}
public Class2 search(...){
Class2 newInstance=p.get();
return newInstance;
}
}
@Singleton
期末一班{
提供者p;
@注入
私有类1(提供程序pParam;…){
p=pParam;
...
}
公共类2搜索(…){
Class2 newInstance=p.get();
返回newInstance;
}
}
我想我找到了。
需要为此类实例使用提供程序。
在构造函数中获取类提供程序,并使用provider.get获取实例
比如:
@Singleton
final class Class1 {
Provider<Class2> p;
@Inject
private Class1(Provider<Class2> pParam;...){
p=pParam;
...
}
public Class2 search(...){
Class2 newInstance=p.get();
return newInstance;
}
}
@Singleton
期末一班{
提供者p;
@注入
私有类1(提供程序pParam;…){
p=pParam;
...
}
公共类2搜索(…){
Class2 newInstance=p.get();
返回newInstance;
}
}
如果需要提供注入参数以外的参数,也可以查看辅助注入功能,该功能允许您创建一个工厂接口,声明某些参数已传递给对象。如果需要提供注入参数以外的参数,也可以查看辅助注入功能,它允许您创建一个工厂接口,声明将某些参数传递给对象。