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

nkkqxpd9  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(361)

使用guice在单例对象的方法中创建对象的正确方法是什么。
如果我有下面这样的代码,那么创建class2示例的正确方法是什么?class1是单例的,每次调用search时都需要创建一个新的class2示例(所以我不能用构造函数字段注入它…),如果需要的话,我会重新组织代码。

@Singleton
final class Class1 {

@Inject
private Class1(...){...}

public Class2 search(...){
   Class2 newInstance=...
   return newInstance;
}

}
4ktjp1zp

4ktjp1zp1#

我想我找到了。需要为此类示例使用提供程序。在构造函数中获取类提供程序,并使用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;
}

}

相关问题