Java 使用Guice在方法内部创建对象的正确方法是什么

Java 使用Guice在方法内部创建对象的正确方法是什么,java,guice,Java,Guice,使用Guice在单例对象的方法内部创建对象的正确方法是什么 如果我有下面这样的代码,那么创建Class2实例的正确方法是什么? Class1是单例的,每次调用search时都需要创建Class2的一个新实例(所以我不能将它注入构造函数字段…),如果需要,我将重新组织代码 @Singleton final class Class1 { @Inject private Class1(...){...} public Class2 search(...){ Class2 newInstanc

使用Guice在单例对象的方法内部创建对象的正确方法是什么

如果我有下面这样的代码,那么创建Class2实例的正确方法是什么? Class1是单例的,每次调用search时都需要创建Class2的一个新实例(所以我不能将它注入构造函数字段…),如果需要,我将重新组织代码

@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;
}
}

如果需要提供注入参数以外的参数,也可以查看辅助注入功能,该功能允许您创建一个工厂接口,声明某些参数已传递给对象。如果需要提供注入参数以外的参数,也可以查看辅助注入功能,它允许您创建一个工厂接口,声明将某些参数传递给对象。